Ruby on rails 如何使用rake命令在命名空间的每个任务上运行函数
我想运行一个简单的函数,在名称空间中的每个rake任务上输入\以\继续。 目前,我在每个任务的末尾添加了该函数 然而,这似乎是多余的,有没有办法运行这个函数,输入_to _continue,在名称空间“mytest”的每个任务结束时自动运行,通过执行一些元编程Ruby on rails 如何使用rake命令在命名空间的每个任务上运行函数,ruby-on-rails,ruby,rake,Ruby On Rails,Ruby,Rake,我想运行一个简单的函数,在名称空间中的每个rake任务上输入\以\继续。 目前,我在每个任务的末尾添加了该函数 然而,这似乎是多余的,有没有办法运行这个函数,输入_to _continue,在名称空间“mytest”的每个任务结束时自动运行,通过执行一些元编程 namespace :mytest do task :foo do system "date" enter_to_continue end task :bar do system "ls"
namespace :mytest do
task :foo do
system "date"
enter_to_continue
end
task :bar do
system "ls"
enter_to_continue
end
# ...
# Let's say 10 more tasks ends with enter_to_continue comes after
# ...
end
def enter_to_continue
STDIN.gets.chomp
end
您可以尝试Rake::Task#enhance:
编辑:
您还可以在定义块内增强任务:
namespace :mytest do |ns|
#
#...Task definitions...
#
ns.tasks.each{|tsk|
tsk.enhance { puts "\treached method #{__method__}" }
}
end
namespace :mytest do |ns|
#
#...Task definitions...
#
ns.tasks.each{|tsk|
tsk.enhance { puts "\treached method #{__method__}" }
}
end