W ramach zadania rake, w jaki sposób jeden zapytać o opis? Coś, co dałoby:Zadanie dostępu rake Opis z poziomu zadania
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
W ramach zadania rake, w jaki sposób jeden zapytać o opis? Coś, co dałoby:Zadanie dostępu rake Opis z poziomu zadania
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
task
musi być zdefiniowana jako parametr dla zadania bloku.
desc "Populate DB"
task :populate do |task|
puts task.comment # "Populate DB"
puts task.full_comment # "Populate DB"
puts task.name # "populate "
end
Edit: To rozwiązanie działa z prowizji 0.8.7. Przynajmniej rake 0.9.2.2 potrzebuje dodatkowego Rake::TaskManager.record_task_metadata = true
(sprawdziłem tylko te dwie wersje).
samodzielnym ruby skrypt z adaptacji:
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
Powód: rake/task_manager.rb
w wierszu 30 (natarcia 0.9.2.2) jest sprawdzenie
if Rake::TaskManager.record_task_metadata
add_location(task)
task.add_description(get_description(task))
end
Domyślna false
jest ustawiony w linii 305
Mam podobny problem, że chciałem pokazać użytkownikowi spersonalizowany ekran pomocy. Odpowiedź tutaj bardzo mi pomogła.
Jest to bardzo ważne, że
Rake::TaskManager.record_task_metadata = true
odbywa się przed pierwszą definicję zadań.
Następnie można zrobić
Rake.application.tasks.each do |t|
printf("%-}s # %s\n",
t.name_with_args,
t.comment)
end
szczegóły można znaleźć badając https://github.com/jimweirich/rake/blob/master/lib/rake/application.rb#L284
'task.comment' wydaje się być powrocie' zerowe dla mnie. Jakieś pomysły? –
Przykład działa dobrze dla mnie. Którą wersję używasz? Mam ruby 1.9.2 i 'RAKEVERSION = '0.8.7'' – knut
Zaktualizowałem swój rake do' 0.9.2.2' - teraz otrzymuję 'nil' dla' task.comment' oraz 'task.full_comment'. – knut