Ruby 如何将命名参数传递给Rake任务?
有没有一种方法可以在不使用环境变量的情况下将命名参数传递给Rake任务 我知道Rake任务可以接受两种格式的参数: 环境变量Ruby 如何将命名参数传递给Rake任务?,ruby,arguments,rake,task,named-parameters,Ruby,Arguments,Rake,Task,Named Parameters,有没有一种方法可以在不使用环境变量的情况下将命名参数传递给Rake任务 我知道Rake任务可以接受两种格式的参数: 环境变量 $ rake my_task foo=bar $ rake my_task['foo','bar'] 这将创建一个名为foo和值为bar的环境变量,可通过ENV['foo']在Rake任务myu任务中访问该变量 Rake任务参数 $ rake my_task foo=bar $ rake my_task['foo','bar'] 这会将值foo和bar传递给前两个
$ rake my_task foo=bar
$ rake my_task['foo','bar']
这将创建一个名为foo
和值为bar
的环境变量,可通过ENV['foo']
在Rake任务myu任务中访问该变量
Rake任务参数
$ rake my_task foo=bar
$ rake my_task['foo','bar']
这会将值foo
和bar
传递给前两个任务参数(如果已定义)。如果my_task
被定义为:
task :my_task, :argument_1, :argument_2
然后argument_1
将具有值foo
,argument_2
将具有值bar
,您可以这样说:
rake some_task -- --arg=value
然后,在您的任务中,ARGV
将
[ 'some_task', '--arg=value' ]
因此,您可以使用(或其他一些选项解析器)来解压缩ARGV
,就像在任何旧的CLI脚本中一样;为了防止rake试图将--arg=like
解析为rake开关,必须使用外观有趣的--
使用标准环境变量方法可能会更好,它不像所有的--
东西那么难看,它是向rake任务传递参数的常用方法