Ruby 如何在Rake中获取当前名称空间?
在这种情况下,如何获得Ruby 如何在Rake中获取当前名称空间?,ruby,rake,Ruby,Rake,在这种情况下,如何获得:基线符号?现在有一种更干净的方法: namespace :baseline do INDEX_DIR = index(:baseline) # context task(:foo) ... end 名称空间:基线do 范围=Rake.application.current\u范围 放置scope.path 结束 我需要它来定义动态任务,因此不必将名称空间传递给块是一个很大的优点。除了使用Rake.application.current\u scope: nam
:基线符号?现在有一种更干净的方法:
namespace :baseline do
INDEX_DIR = index(:baseline) # context
task(:foo) ...
end
名称空间:基线do
范围=Rake.application.current\u范围
放置scope.path
结束
我需要它来定义动态任务,因此不必将名称空间传递给块是一个很大的优点。除了使用Rake.application.current\u scope
:
namespace :baseline do |namespace|
scope = namespace.instance_variable_get("@scope")
INDEX_DIR = index(scope)
task(:foo) ...
end
范围
将是“基线”
(字符串,而不是请求的符号)
但在rake中,可以用符号或字符串定义名称空间,也可以这样定义:
namespace :baseline do |namespace|
scope = namespace.scope.path
#...
end
两种定义的范围相同
如果您确实需要符号,可以使用范围。要使用范围,您可以使用它访问范围,该范围将是嵌套此任务的命名空间数组:命名空间。实例变量\u get(“@scope”)
namespace 'baseline' do |namespace|
scope = namespace.scope.path
#...
end