我需要定义一个可以处理任意数量参数的rake任务,就像C ++中的可变参数函数一样。但我找不到在rake的DSL中定义它的方法。
如何创建可以处理任意数量参数的rake任务? 一个例子很有用。
谢谢!
答案 0 :(得分:2)
版本0.8的Rake无法处理此问题,如其文档中所述(它只是忽略了任何其他参数)。
但是,如果您可以切换到使用Thor,则可以获得此行为。要演示,请使用以下内容创建Thorfile
:
class VariableArguments < Thor
desc 'multiple [ARGS]', "Task with multiple arguments"
def multiple(*args)
p args
end
end
然后像这样调用它:
$ thor variable_arguments:multiple one two three four five six
这将打印以下内容:
["one", "two", "three", "four", "five", "six"]
(使用Thor 0.14.6测试)
答案 1 :(得分:0)
建立在这里的帖子:How do I pass command line arguments to a rake task我认为arg1只是一个数组,你可以做一个array.each do | arg |。从命令行开始,它将是一个用引号,逗号分隔列表传递的问题。