我想从耙子里知道正在执行的任务的名称是什么?这该怎么做?例如,在下面的代码中,当我运行rake my_incredible_task
时,它应该打印“my_incredible_task”:
task :boot do
task_name = <what comes here?>
puts task_name
end
task :my_incredible_task => [:boot] do
#do some stuff
end
答案 0 :(得分:0)
您可以在块中使用参数:
task :my_incredible_task do |t|
puts t.name
end
修改强>
您可以改用方法:
task :boot do |t|
boot(t.name)
end
task :my_incredible_task do |t|
boot(t.name)
#do some stuff
end
def boot task_name
# do stuff
end
答案 1 :(得分:0)
我不确定是否有开箱即用的方法,但你可以这样做:
require 'rake'
module Rake
class Application
attr_accessor :current_task_name
end
class Task
alias :old_execute :execute
def execute(args=nil)
Rake.application.current_task_name = @name
old_execute(args)
end
end
end
namespace :so do
task :my_task do
puts Rake.application.current_task_name
end
end
不确定这将如何解决并行运行的任务......