Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何将命名参数传递给Rake任务?_Ruby_Arguments_Rake_Task_Named Parameters - Fatal编程技术网

Ruby 如何将命名参数传递给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任务

我知道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
传递给前两个任务参数(如果已定义)。如果
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任务传递参数的常用方法