2016-07-19 14 views
0

私は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] 

私はどのようにパラメータを渡すのですか?あなたが達成しようとしているものをさらに説明することができます

答えて

0

レーキは、あなたのタスクを実行する前に、すべての「依存」タスクを実行します...ので、私はあなたが上記の

を達成することはできないだろうか?一例として

Jusyタスクはあなたが

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] 
+0

が、私は確認があり、単純なタスクを持っているあなたのコードでは、次の

rake foo omegaVar 

を行うことができるかもしれませんコマンドラインから実行された場合step - ユーザーが確認するためにyと入力し、rakeが終了したら他のものを入力します。私はこの作業を複数の場所で使用していますが、現時点ではメッセージは一般的な「破壊的なアクションの確認」です。私はそれが使用される場所に固有のようにそれを使用するたびにメッセージを渡す方法が欲しいです。 – Undistraction

+0

私はこれを実装していた場合、確認のためにタスクの代わりに関数/メソッドを作成します。確認するたびに、関数/メソッドを呼び出します。グローバル変数を設定すると、それを一度設定することができます。すべてのタスクが確認関数が呼び出されたかどうかを確認し、そうでなければ破壊的なタスクを実行します。次にグローバル変数をクリアできる関数を持ちます。 –

+0

あなたは何を意味するのか説明できますか? 'task foo [:alpha、:bravo、:charlie、:delta]' – Undistraction

関連する問題