En una tarea de rake, ¿cómo se consulta la descripción? Algo que daría:Descripción de la tarea de rake de acceso desde la Tarea
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
En una tarea de rake, ¿cómo se consulta la descripción? Algo que daría:Descripción de la tarea de rake de acceso desde la Tarea
desc "Populate DB"
task populate: :environment do
puts task.desC# "Populate DB"
end
task
debe ser definido como un parámetro para la tarea de bloque.
desc "Populate DB"
task :populate do |task|
puts task.comment # "Populate DB"
puts task.full_comment # "Populate DB"
puts task.name # "populate "
end
Editar: Esta solución funciona con el rastrillo 0.8.7. Al menos rastrillo 0.9.2.2 necesita un Rake::TaskManager.record_task_metadata = true
adicional (revisé solo estas dos versiones).
un independiente rubí script con la adaptación:
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
Motivo: rake/task_manager.rb
en la línea 30 (rake 0.9.2.2) es un cheque
if Rake::TaskManager.record_task_metadata
add_location(task)
task.add_description(get_description(task))
end
El valor predeterminado false
se encuentra en la línea 305
Al tener un problema similar, quería mostrar al usuario una pantalla de ayuda personalizada. La respuesta aquí me ayudó mucho.
Es muy importante que
Rake::TaskManager.record_task_metadata = true
se hace antes de la primera definición de tareas.
A continuación, puede hacer
Rake.application.tasks.each do |t|
printf("%-}s # %s\n",
t.name_with_args,
t.comment)
end
detalles se pueden encontrar mediante la investigación de https://github.com/jimweirich/rake/blob/master/lib/rake/application.rb#L284
'task.comment' parece volver' las negativas para mí. ¿Algunas ideas? –
El ejemplo funciona bien para mí. ¿Qué versión usas? Tengo ruby 1.9.2 y 'RAKEVERSION = '0.8.7'' – knut
Actualicé mi rake a' 0.9.2.2' - ahora obtengo 'nil' para' task.comment' y 'task.full_comment'. – knut