概要
rails c
等を叩く時に、毎回Railsの初期化を行わなくなるので、開発速度が向上するよ!!- Springサーバが起動して、変更を監視して必要に応じて再ロードする
- Rails4.1以降は標準で入っていて、勝手に起動したり終了したりしてる
http://railsguides.jp/4_1_release_notes.html
SpringはRailsアプリケーション用のプリローダーです。アプリケーションをバックグラウンドで常駐させることで開発速度を向上させ、テストやrakeタスク、マイグレーションを実行するたびにRailsを起動しないで済むようにします。 Rails 4.1アプリケーションに含まれるbinstubは「spring化」されています。これは、アプリケーションのルートディレクトリでbin/railsおよびbin/rakeを実行すると自動的にspring環境をプリロードするということです。
Springのステータスを確認
$ bin/spring status
Springを手動リロード
$ touch config/application.rb
RSpecでSpringを使う
RspecのコマンドをSpringのに置き換える為のGemを入れる必要がある
#Gemfile gem "spring-commands-rspec", group: :development
- 他にも、cucumber とか各コマンド用のGemがあるので必要に応じて入れる
監視頻度の変更
重い時に
# config/spring.rb Spring.watch_interval = 0.5
コードの修正が反映されないんですけど!!
2-3回ハマった
自分の会社の中の人が既に解決方法をblogに書いてた、さすが!!
Railsでapp以下の変更をSpringが検知しない問題を解決した(?) / マスタカの ChangeLog メモ
config/spring.rbを作って、以下を書けばOKです。
Spring.watch 'app'
他にもwatchしたいディレクトリやファイルがあればこのように書きます。
Spring.watch 'app', 'lib'