aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/paths.rb40
-rw-r--r--railties/test/paths_test.rb24
2 files changed, 34 insertions, 30 deletions
diff --git a/railties/lib/rails/paths.rb b/railties/lib/rails/paths.rb
index 7a65188a9a..d303212f52 100644
--- a/railties/lib/rails/paths.rb
+++ b/railties/lib/rails/paths.rb
@@ -116,36 +116,20 @@ module Rails
@paths.concat paths
end
- def autoload_once!
- @autoload_once = true
- end
-
- def autoload_once?
- @autoload_once
- end
-
- def eager_load!
- @eager_load = true
- end
-
- def eager_load?
- @eager_load
- end
-
- def autoload!
- @autoload = true
- end
-
- def autoload?
- @autoload
- end
+ %w(autoload_once eager_load autoload load_path).each do |m|
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
+ def #{m}!
+ @#{m} = true
+ end
- def load_path!
- @load_path = true
- end
+ def skip_#{m}!
+ @#{m} = false
+ end
- def load_path?
- @load_path
+ def #{m}?
+ @#{m}
+ end
+ RUBY
end
def paths
diff --git a/railties/test/paths_test.rb b/railties/test/paths_test.rb
index 008247cb1a..80fae8c543 100644
--- a/railties/test/paths_test.rb
+++ b/railties/test/paths_test.rb
@@ -118,13 +118,23 @@ class PathsTest < ActiveSupport::TestCase
assert_raise(RuntimeError) { @root << "/biz" }
end
- test "it is possible to add a path that should be loaded only once" do
+ test "it is possible to add a path that should be autoloaded only once" do
@root.app = "/app"
@root.app.autoload_once!
assert @root.app.autoload_once?
assert @root.autoload_once.include?(@root.app.paths.first)
end
+ test "it is possible to remove a path that should be autoloaded only once" do
+ @root.app = "/app"
+ @root.app.autoload_once!
+ assert @root.app.autoload_once?
+
+ @root.app.skip_autoload_once!
+ assert !@root.app.autoload_once?
+ assert !@root.autoload_once.include?(@root.app.paths.first)
+ end
+
test "it is possible to add a path without assignment and specify it should be loaded only once" do
@root.app "/app", :autoload_once => true
assert @root.app.autoload_once?
@@ -152,13 +162,23 @@ class PathsTest < ActiveSupport::TestCase
assert_equal 2, @root.autoload_once.size
end
- test "it is possible to mark a path as eager" do
+ test "it is possible to mark a path as eager loaded" do
@root.app = "/app"
@root.app.eager_load!
assert @root.app.eager_load?
assert @root.eager_load.include?(@root.app.paths.first)
end
+ test "it is possible to skip a path from eager loading" do
+ @root.app = "/app"
+ @root.app.eager_load!
+ assert @root.app.eager_load?
+
+ @root.app.skip_eager_load!
+ assert !@root.app.eager_load?
+ assert !@root.eager_load.include?(@root.app.paths.first)
+ end
+
test "it is possible to add a path without assignment and mark it as eager" do
@root.app "/app", :eager_load => true
assert @root.app.eager_load?