耙“变量”任务

时间:2011-11-16 08:14:42

标签: ruby rake rake-task

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

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

谢谢!

2 个答案:

答案 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 |。从命令行开始,它将是一个用引号,逗号分隔列表传递的问题。