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
(я проверил только эти две версии).
Автономный скрипт ruby с адаптацией:
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
Причина: в 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.