Вызов rake -T
изнутри задач немного сложнее в новых версиях граблей.Параметры, которые необходимо установить, могут быть получены из rake/lib/application.rb
в методе standard_rake_options
.В основном это сводится к
Rake::TaskManager.record_task_metadata = true
task :default do
Rake::application.options.show_tasks = :tasks # this solves sidewaysmilk problem
Rake::application.options.show_task_pattern = //
Rake::application.display_tasks_and_comments
end
Обратите внимание, что record_task_metadata
не может быть установлено из задачи по умолчанию, так как уже будет слишком поздно, когда задача будет выполнена (описания не будут собраны, поэтомуони равны нулю и, следовательно, ни одна задача не соответствует шаблону).Попытка перезагрузить Rakefile изнутри задачи приведет к замкнутому циклу.Я полагаю, что при сборе метаданных всегда наблюдается снижение производительности.Если это проблема, то
task :default do
system("rake -sT") # s for silent
end
может быть более подходящим.
Оба работают для меня, используя рейк 0.9.2.2.