我需要定义一个可以处理任意数量参数的 rake 任务,就像 C++ 中的可变参数函数一样。但是我找不到在 rake 的 DSL 中定义它的方法。
如何创建一个可以处理任意数量参数的 rake 任务?一个例子会很有用。
谢谢!
Rake 自 0.8 版起无法处理此问题,如其文档中所述(它只是忽略任何附加参数)。
但是,如果您可以切换到使用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 测试)
建立在这里的帖子:我如何将命令行参数传递给 rake 任务我认为 arg1 只是一个数组,你可以做一个 array.each 做 |arg|。然后,从命令行中,它们将传递一个带引号的逗号分隔列表。