TONY0922のブログ

学んだことを適当に記録していくブログです。主にRuby, Java, PHPで仕事してます。更新頻度はそんなに高くないので、ご了承下さい。

capistrano の topメソッド

topメソッドが何してくれるのかわからなかったので、調査。

Definition

top() 

Module

Capistrano::Configuration::Namespaces

使い方

namespace :cache do
  task :warm_up do
    # ...
  end
end

namespace :deploy do
  namespace :cache do
    task :restart do
      # ...
    end
  end

  task :default do
    update_code # (1) 同じネームスペースのupdate_codeが呼ばれる。
    cache.warm_up # (2) トップレベルの「cache」ネームスペースではなく、「deploy:cache」ネームスペースのwarm_upが呼ばれる。
  end

  task :update_code do
    # ...
  end
end

(2)でトップレベルの「cache」ネームスペースのwarm_upを呼びたい場合は下記の書く。

task :default do
  update_code # calls the task in the same scope
  top.cache.warm_up # uses the top-level cache namespace
end

参考URL