我如何将命名参数传递给Rake任务?

有没有办法将命名参数传递给Rake任务而不使用环境变量?

我知道Rake任务可以接受两种格式的参数:

环境变量

$ rake my_task foo=bar

这将创建一个名为foo的环境变量以及可通过ENV['foo']在Rake任务my_task访问的值bar

Rake任务参数

$ rake my_task['foo','bar']

这将值foobar传递给前两个任务参数(如果已定义)。 如果my_task被定义为:

task :my_task, :argument_1, :argument_2

那么argument_1将具有值fooargument_2将具有值bar


你可以这样说:

rake some_task -- --arg=value

然后,在你的任务中, ARGV将会

[ 'some_task', '--arg=value' ]

所以你可以使用OptionParser(或其他选项解析器)来解压缩ARGV ,就像在任何旧的CLI脚本中一样; 有趣的看起来--有必要保持耙子试图解析--arg=like作为耙开关。

你很可能与标准的环境变量的方法更好,它并不像所有的丑陋--东西,它是传递参数给耙任务的常用方法。

链接地址: http://www.djcxy.com/p/30299.html

上一篇: How can I pass named arguments to a Rake task?

下一篇: How to Output Unicode Strings on the Windows Console