2017-05-10 1 views
-1

典型的なrakeタスクの定義は次のようになります。レイクタスクが定義された後、そのレイクタスクに説明を追加するにはどうすればよいですか?

desc "Set the environment value for the database" 
task "environment:set" => [:environment, :load_config] do 
    ActiveRecord::InternalMetadata.create_table 
    ActiveRecord::InternalMetadata[:environment] = ActiveRecord::Migrator.current_environment 
end 

しかし、タスク定義を持つファイルが実行された後、それはdescを持っていない、と私は、実行時に後でそれを追加したい場合はどのような。 desc "this is the documentation", task: :tasknameのようなものです。これは可能ですか?

+0

ここのアプローチがdescと動作をオーバーライドするように見えます:http://metaskills.net/2010/05/26/the-alias-method-chain-of-rake-override-rake-task/ –

答えて

0

はい、「タスク」メソッドのすぐ上にある限り、事実の後にdescを追加できます。

Githubリポジトリへのリンクが壊れていますが、at the source hereを見ると、 rake -Tが呼び出されたときにdescが文字列を追加するだけです。

+0

"事実の後で "私は"さらにコードの下にあることを意味する "。したがって、 'task'メソッドの直上にあることはできません。 –

+0

ああ、私は誤解しました。いいえ、descメソッドは次のタスクメソッドにリンクされています。タスクの後にdescメソッドを置くと、descは次のタスクに割り当てられ、rakefileの最後にある場合はまったく無効になります。 2つのdescメソッドを使用すると、後者は最初のオーバーライドになります。好奇心のために、なぜあなたはタスクメソッドの前にそれを置くことができないのですか?何らかのハックがあるかもしれませんが、それは私の範囲外です。 –

+0

あなたの "事後"のコメントは、いつものようにあなたの質問にする必要があります。誰もがあなたが話していることを理解できるようにそれを追加してください。 (変更された内容を知ることができるように、「編集」タグや「更新」タグを使用しないでください)なぜ、それが想定されるタスクの上にあるのかを説明してください。 –

関連する問題