2009-08-19 69 views
2

所有命名空間的任務我有不同的任務命名空間:運行與Capistrano的

namespace :mytest do 
    task :setup do; ... end; 
    task :task1 do; ... end; 
    task :task2 do; ... end; 
end

當我運行帽mytest的我得到任務'備份」不存在

如何創建一個調用所有任務的命令?

回答

3
task :default do 
    setup 
    task1 
    task2 
end
0

在一個項目中,我發現自己經常需要調用給定名稱空間中的所有任務。這是Namespace類的簡單猴子補丁,它將添加run_all_tasks方法。該方法採用可選的except數組,該數組應該是要排除的任務名稱列表(作爲符號)。

module Capistrano 
    class Configuration 
    module Namespaces 
     class Namespace 

     def run_all_tasks(except = []) 
      except << :all 

      self.task_list(false).each do |task| 
      task.body.call unless except.include?(task.name) 
      end 
     end 

     end 
    end 
    end 
end 

該方法將按照它們定義的順序運行任務。與任何類型的猴子補丁\ hack一樣,請謹慎使用此方法!