もた日記

くだらないことを真面目にやる

Railsメモ(27) : Guard::Bundlerでbundle installを自動実行する

github.com

Guard::Bundlerを使えばGemfileを変更したときに自動でbundle installしてくれるようになるので地味に便利。
Gemfileに下記行を追加して手動でbundle installする。

group :development do
  gem 'guard'
  gem 'guard-bundler', require: false
end

Guardfileに設定を追加するために下記コマンドを実行。

$ guard init bundler
22:16:04 - INFO - bundler guard added to Guardfile, feel free to edit it

以下の内容がGuardfileに追加される。

guard :bundler do
  require 'guard/bundler'
  require 'guard/bundler/verify'
  helper = Guard::Bundler::Verify.new

  files = ['Gemfile']
  files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }

  # Assume files are symlinked from somewhere
  files.each { |file| watch(helper.real_path(file)) }
end

これで今後はGemfileを変更したときに自動でbundle installされるようになり、
結果によって下記いずれかのメッセージが表示される。
なお、デフォルトで通知は有効になっているためシステムへの通知を有効にしていれば通知される。

Bundle already up-to-date
Bundle installed using local gems
Bundle installed
Bundle can't be installed -- Please check manually

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails