Capistrano利用時に複数プロジェクトでカスタムnamespaceファイルを共通化する


この記事は最終更新から1年以上経過しています。 気をつけてね。

Capistranoでプロジェクトが複数になってくるとNamespaceの使い回しが多くなる。
loadメソッドで外部からレシピを取り込める。

.
├── proj_a
│   └── config
│       ├── deploy
│       │   ├── production.rb
│       │   └── staging.rb
│       └── deploy.rb
├── proj_b
│   └── config
│       └── deploy
├── lib
    └── echo.rb

libあたりに共通化したいレシピのecho.rbを置いてみる。

echo.rb
namespace :hello do
  task :world do
    puts "good night."
  end
end

そしたらdeploy.rb内でloadする。

load '../lib/echo'