読者です 読者をやめる 読者になる 読者になる

オモンパカリスト

深層学習、計算論的神経科学に興味あります

Rails4.2.5でspringを対応させる

Rails 4.1以上から、rails newで初期からspringがgemインストールされます。

ただ、実際にspringを対応させるには手順があります。

忘れがちなので、備忘録がでら記しておきます。

Spring

Springとはアプリケーションプリローダーで、 キャッシュを持って開発の変更を監視し、 railsコマンドやrakeコマンドの実行速度を劇的にあげてくれます。

対応させる

$ bundle exec spring binstub --all

これでRailsのbinディレクトリ内のrails, rake等全てにspringの監視の目が行くようになります。

f:id:i101330:20160123183407p:plain

bin/rake

rakeコマンド

普段は、

$ bundle exec rake -T

みたいな感じだと思いますが、springの目を通す書き方は

$ bundle exec bin/rake -T

このようにbin/を頭につけます。

実行時間を測るため頭にtimeコマンドを噛ませて普段通りにrakeを実行。

$time bundle exec rake -T

f:id:i101330:20160123183741p:plain

僕の環境は時間かかりすぎな気がしますがw

次に、bin/rakeです。

$ time bundle exec bin/rake -T
Running via Spring preloader in process XXXX

Running via Spring...と、Springを経由して実行していることが表示されます

f:id:i101330:20160123184320p:plain

めちゃめちゃ早くなりました。

ステータス

$ bundle exec bin/spring status

Springが起動しているとSpring is runningと出力されます。

railsコマンド

railsコマンドはbin/をつけなくてもいいみたいです。

$ bundle exec rails generate devise User
Running via Spring preloader in process XXXX