Guard::Bundlerでbundle installの自動化

最近Guardの中でGuard::RSpecと並んで必ずと言っていいほど使っているのがGuard::Bundler。
これを使うとGemfileを更新した際に自動でbundle installが実行されるようになりうれしい。

bundle installを忘れて首をかしげるといった地味にあるなるな状況とおさらばできて、けっこうな時間節約になる。

え?全然あるあるじゃない?
まあそういう人にとってもbundle installとタイプする時間が節約できるのはいいことじゃないかな。

インストール

Gemfileに以下を追記してbundle install。

gem 'guard-bundler'

これが手で打つ最後のbundle installとなる。

Guardfileの作成

以下のコマンドを実行すると

bundle exec guard init bundler

次の内容がGuardfileに書き込まれる。

guard 'bundler' do
  watch('Gemfile')
  # Uncomment next line if Gemfile contain `gemspec' command
  # watch(/^.+\.gemspec/)
end

自前のGemパッケージを開発している場合は.gemspecも監視対象にすることができる。(.gemspecの行のコメントアウト解除でOK)

実行

Guardを動かす。

bundle exec guard

この状態で試しにGemfileに何か追加してみると

Refresh bundle
Fetching source index for http://rubygems.org/

と動きだし、ずらずらっとgemのリストが表示されて最後に

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

と表示される。
ビューリホー。

Gemfileにミスがあるとコンソールにエラーが表示されるので、それを元に修正するべし。