レーキタスク内では、どのように説明をクエリしますか?与えるだろう何か:タスク内からのレイクタスクの説明へのアクセス
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
レーキタスク内では、どのように説明をクエリしますか?与えるだろう何か:タスク内からのレイクタスクの説明へのアクセス
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
task
は、タスクブロックのパラメータとして定義する必要があります。
desc "Populate DB"
task :populate do |task|
puts task.comment # "Populate DB"
puts task.full_comment # "Populate DB"
puts task.name # "populate "
end
編集: このソリューションは、熊手0.8.7で動作します。少なくともレーキ0.9.2.2にはさらにRake::TaskManager.record_task_metadata = true
が必要です(この2つのバージョンのみをチェックしました)。
gem 'rake' #'= 0.9.2.2'
require 'rake'
#Needed for rake/gem '= 0.9.2.2'
Rake::TaskManager.record_task_metadata = true
desc "Populate DB"
task :populate do |task|
p task.comment # "Populate DB"
p task.full_comment # "Populate DB"
p task.name # "populate "
end
if $0 == __FILE__
Rake.application['populate'].invoke() #all tasks
end
理由::
Aは適応単独ルビースクリプトをスタンドrake/task_manager.rb
ライン30(レーキ0.9.2.2)に
if Rake::TaskManager.record_task_metadata
add_location(task)
task.add_description(get_description(task))
end
デフォルトfalse
はライン305に設定されているチェックがあります
同様の問題があるため、私はユーザーにカスタマイズされたヘルプ画面を見せたいと思っていました。ここの答えは私を助けました。
Rake::TaskManager.record_task_metadata = true
はタスクの最初の定義の前に行われることが非常に重要です。
次にあなたが
Rake.application.tasks.each do |t|
printf("%-}s # %s\n",
t.name_with_args,
t.comment)
end
詳細を行うことができます私のために `nil`を返すように見えるtask.comment` https://github.com/jimweirich/rake/blob/master/lib/rake/application.rb#L284
'を調べることによって見つけることができます。何か案は? –
この例は私にとってうまくいきます。どのバージョンを使用していますか? ruby 1.9.2と 'RAKEVERSION = '0.8.7'' – knut
rakeを' 0.9.2.2'に更新しました。これで、 'task.comment'と' task.full_comment'に 'nil'が追加されました。 – knut