2016-08-16 30 views
1

我的Rails應用程序有lib/tasks/*結束語rake任務與前/鉤

當這些任務運行在定義了幾種定製耙任務,我想輸出日誌STARTSTOP消息。

對個人rake任務,我可以這樣做

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 

這將運行耙子任務需要一個參數:some_arg,運行的先決條件任務(:some_pre_requisite),然後運行任務。它會在我的任務已經啓動並停止之前和之後輸出日誌語句。

如果我有幾十個任務,這真的重複。我喜歡在

  • 打印START聲明瞭一些其他方法來「包裝」 rake任務
  • 所調用/收益/運行實際rake任務叫做
  • 打印的STOP聲明

我知道我可以將第一張印刷品設置爲先決條件,然後將第二張印刷品作爲單獨的增強型任務設置,但是感覺混亂。它將兩個打印語句存儲在不同的位置,另外我必須單獨手動enhance每個任務。

有關如何實現這一目標的更好的想法?

謝謝!

回答