use*_*003 4 rake ruby-on-rails
我的 rails 应用程序在下面定义了几个自定义 rake 任务 lib/tasks/*
当这些任务中的任何一个运行时,我想输出日志START和STOP消息。
对于个人耙任务,我可以做类似的事情
namespace :foo do
task :bar, [:some_arg] => :some_pre_requisite do |t, args|
Rails.logger.info "Rake START - {task: \"#{t}\", args: #{args}}"
# Do stuff
Rails.logger.info "Rake STOP - {task: \"#{t}\", args: #{args}}"
end
end
Run Code Online (Sandbox Code Playgroud)
这将运行一个接受参数的 rake 任务:some_arg,运行一个先决任务 ( :some_pre_requisite),然后运行该任务。它在说我的任务已经开始和停止之前和之后输出日志语句。
如果我有几十个任务,这会变得非常重复。我想用其他一些方法“包装”耙子任务
START语句STOP语句我知道我可以将第一次打印设置为先决条件,然后将第二次打印设置为单独的增强任务,但这感觉很混乱。它将两个打印语句存储在不同的位置,而且我必须enhance单独手动执行每个任务。
关于如何实现这一点的任何更好的想法?
谢谢!
关于后钩:
Rake::Task['db:migrate'].enhance do
puts "AFTER"
end
Run Code Online (Sandbox Code Playgroud)
http://ruby-doc.org/stdlib-2.0.0/libdoc/rake/rdoc/Rake/Task.html#method-i-enhance
对于前钩(未经测试):
task :before do
puts "BEFORE"
end
Rake::Task['db:migrate'].enhance(['before'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |