mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add skip_eager_load!, skip_autoload! and friends to path objects.
This commit is contained in:
parent
38f1ea8fe2
commit
c6e2058637
2 changed files with 34 additions and 30 deletions
|
@ -116,36 +116,20 @@ module Rails
|
|||
@paths.concat paths
|
||||
end
|
||||
|
||||
def autoload_once!
|
||||
@autoload_once = true
|
||||
%w(autoload_once eager_load autoload load_path).each do |m|
|
||||
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
||||
def #{m}!
|
||||
@#{m} = true
|
||||
end
|
||||
|
||||
def autoload_once?
|
||||
@autoload_once
|
||||
def skip_#{m}!
|
||||
@#{m} = false
|
||||
end
|
||||
|
||||
def eager_load!
|
||||
@eager_load = true
|
||||
def #{m}?
|
||||
@#{m}
|
||||
end
|
||||
|
||||
def eager_load?
|
||||
@eager_load
|
||||
end
|
||||
|
||||
def autoload!
|
||||
@autoload = true
|
||||
end
|
||||
|
||||
def autoload?
|
||||
@autoload
|
||||
end
|
||||
|
||||
def load_path!
|
||||
@load_path = true
|
||||
end
|
||||
|
||||
def load_path?
|
||||
@load_path
|
||||
RUBY
|
||||
end
|
||||
|
||||
def paths
|
||||
|
|
|
@ -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?
|
||||
|
|
Loading…
Reference in a new issue