ruby 向Rake依赖项传递参数

rqmkfv5c  于 2023-01-25  发布在  Ruby
关注(0)|答案(2)|浏览(153)

我知道如何将参数传递给rake任务,但我不知道如何将参数传递给依赖任务。
我有一个只运行一系列依赖任务的任务:

task foo [:alpha, :bravo, :charlie, :delta]

我需要添加一个名为:omega的任务:

task foo [:omega, :alpha, :bravo, :charlie, :delta]

但是我需要给它传递一个参数,我不想把参数传递给:foo -我只想把参数硬编码到依赖任务中,我想这样做(我知道它是无效的):

task foo [:omega('Some Param'), :alpha, :bravo, :charlie, :delta]

如何传入参数?

bvpmtnay

bvpmtnay1#

Rake将在运行您的任务之前运行所有“依赖”任务...所以我怀疑您是否能够实现上述目标
你能进一步解释一下你想达到什么目的吗?
举个例子,如果任务是从命令行运行的,您可以执行以下操作

rake foo omegaVar

在你的代码中

def confirmDestruction
    print "Are you sure you want to do that?\n"
    answer=gets()
    if answer == 'y'
      return true
    else
      exit 0
    end
end

task :omega do
   $conrimedDestruction = confirmDestruction if $conrimedDestruction.nil?
   if $conrimedDestruction
     print "${$omegaVar}\n"
   else
     print "non destructive functionality\n"
   end
end

task :alpha do
   if $conrimedDestruction
     print "${$omegaVar}\n"
   else
     print "non destructive functionality\n"
   end
end
task :foo => [:omega, :alpha, :bravo, :charlie, :delta]
4nkexdtk

4nkexdtk2#

不管怎样,这是不可能的。可供选择的办法有:

task :t do
task :t, :a, :b, ... do
task :t, [:a, :b, ...] do

如果您不指定依赖项,则:

task :t => [:d1, d2, ...] do
task :t, [:a, :b, ...] => [:d1, d2, ...] do

如果你有话。
除非您想手动调用它:
一个二个一个一个

相关问题