ループ内から同じレーキタスクinvoke
を実行することはできませんmore than onceしかし、私はrake first
を呼び出すことができ、配列をループして、それぞれの反復で異なる引数でsecond
を呼び出したいと考えています。 invoke
はじめて実行されるため、execute
を使用しようとしましたが、Rake::Task#executeはsplat(*)演算子を使用せず、引数は1つのみです。その周り複数の引数を指定してRakeタスクを実行するにはどうすればよいですか?
desc "first task"
task :first do
other_arg = "bar"
[1,2,3,4].each_with_index do |n,i|
if i == 0
Rake::Task["foo:second"].invoke(n,other_arg)
else
# this doesn't work
Rake::Task["foo:second"].execute(n,other_arg)
end
end
end
task :second, [:first_arg, :second_arg] => :prerequisite_task do |t,args|
puts args[:first_arg]
puts args[:second_arg]
# ...
end
一つのハックは、配列にexecute
に引数を入れて、second
で引数の構造を調べることであるが、それはハック、まあ、そうです。私は何をしたいのですか?
それは滑らかに見えます。ありがとう! –