提交 c6e20586 编写于 作者: J José Valim

Add skip_eager_load!, skip_autoload! and friends to path objects.

上级 38f1ea8f
......@@ -116,36 +116,20 @@ def concat(paths)
@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
......
......@@ -118,13 +118,23 @@ def setup
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 @@ def setup
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?
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册