3

我需要定义一个可以处理任意数量参数的 rake 任务,就像 C++ 中的可变参数函数一样。但是我找不到在 rake 的 DSL 中定义它的方法。

如何创建一个可以处理任意数量参数的 rake 任务?一个例子会很有用。

谢谢!

4

2 回答 2

2

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 测试)

于 2011-11-18T14:41:45.350 回答
0

建立在这里的帖子:我如何将命令行参数传递给 rake 任务我认为 arg1 只是一个数组,你可以做一个 array.each 做 |arg|。然后,从命令行中,它们将传递一个带引号的逗号分隔列表。

于 2011-11-17T05:04:25.060 回答