And*_*rew 25 ruby rake arguments task named-parameters
有没有办法在不使用环境变量的情况下将命名参数传递给Rake任务?
我知道Rake任务可以接受两种格式的参数:
环境变量
$ rake my_task foo=bar
Run Code Online (Sandbox Code Playgroud)
这将创建名称的环境变量foo和值bar可在Rake任务进行访问my_task的ENV['foo'].
耙任务参数
$ rake my_task['foo','bar']
Run Code Online (Sandbox Code Playgroud)
此传递的值foo与bar前两个任务参数(如果它们被定义).如果my_task被定义为:
task :my_task, :argument_1, :argument_2
Run Code Online (Sandbox Code Playgroud)
然后argument_1会有价值foo,argument_2并具有价值bar.
mu *_*ort 27
你可以这样说:
rake some_task -- --arg=value
Run Code Online (Sandbox Code Playgroud)
然后,在你的任务中,ARGV将是
[ 'some_task', '--arg=value' ]
Run Code Online (Sandbox Code Playgroud)
所以你可以使用OptionParser(或其他一些选项解析器)解压缩ARGV,就像在任何旧的CLI脚本中一样; 有趣的看起来--是必要的,以防止rake尝试解析--arg=like为rake开关.
使用标准环境变量方法可能会更好,它并不像所有--东西那样丑陋,而且它是将参数传递给rake任务的常用方法.
| 归档时间: |
|
| 查看次数: |
6790 次 |
| 最近记录: |