VirtualBoxでspringを動かしてみる
遅ればせながら、Railsのpreloaderとしてspringを使ってみました。
理由は、今まで使っていたsporkだと、コンソールが2つ必要になるのが
springでは一つになりそうだからです。
(sporkの起動に一つと、その他のコマンドの実行に一つ)
特にRSpecからデバッグする時、RSpecの起動と、デバッガがブレークポイントを示す
コンソールが異なるのが、不便でした。
以下、手順です。VirtualBoxでspringを実行する際には(他の仮想マシンでも同じか?)
下記に書くようなエラーが起きるので、単純にspringをインストールするだけでは
実行できないです。
1.springのインストール
以下のコマンドを実行する。(Gemfileに書いてbundle installは非推奨らしい)
$ gem install spring
2.springをロードし、rspecを起動してみる。
$ spring rspec spec/
3.以下のエラーが発生する。
`rescue in start_server': Spring is unable to create a socket・・・
良く見ると、エラーメッセージに以下のような解決策が書いてある。
You may need to set the SPRING_TMP_PATH environment variable to use a different path.
4.SPRING_TMP_PATHを設定するため、以下のコマンドを実行する。
$ mkdir ~/spring_tmp
$ export SPRING_TMP_PATH=spring_tmpのパス
5.手順2.を実行し、起動できることを確認する。
6.springが起動できることが確認できたら、~/.bashrcに以下を追記する。
export SPRING_TMP_PATH=spring_tmpのパス
以上です。spring上でのRSpecを起動と、pry debuggerの操作が
一つのコンソールで出来ることを確認しました。
※参考サイト
ruby on rails - Spring wil not start - Stack Overflow