Spring

参考:

rails/spring: Rails application preloader – GitHub

jonleighton/spring-watcher-listen – GitHub

ドキュメント

参考:

Documentation for spring | RubyDoc.info

Documentation for spring-watcher-listen | RubyDoc.info

使い方

group :development do
  gem "listen", ">= 3.0.5", "< 3.2"
  gem "spring"
  gem "spring-watcher-listen", "~> 2.0.0"
end

参考:

Spring install – Qiita

spring を使ってテスト高速化 – Qiita

実践 Ruby on Rails 学習ノート 初期設定編 | 珈琲駆動開発

Rails 使いよ spork, zeus から spring へ!| Act as Professional

spring stop

Spring サーバーの動作を停止させる。

$ spring stop

参考:

rails のコマンドが動かない時は spring を (stop|kill) してみよう – Qiita

spring を再起動する – Qiita

開発時に rails コマンドが動かなくなったときの対処法 | Webサプリ

rails console が応答しなくなったら | Permanent Til

Does the Rails Console reload initializers? – Stack Overflow

reload!

rails console で自動読み込みされた定数を再ロードする。

> reload!

※ イニシャライザは再実行されないので注意!!

イニシャライザをリロードするためには、コンソールを一旦終了して spring stop を実行する。

参考:

Does the Rails Console reload initializers? – Stack Overflow

config/spring.rb

参考:

Rails5 で app 以下のディレクトリが読み込まれないとき | nyarn.tech

Rails で app 以下の変更を Spring が検知しない問題を解決した(?) | マスタカの ChangeLog メモ

spring コマンド実行時に読み込まれる ~/.spring.rb についての試行錯誤の記録 – Qiita

フォーク後にコードを実行する

Spring.after_fork do
  # run arbitrary code
end

参考:

Running code after forking – rails/spring: Rails application preloader – GitHub

DISABLE_SPRING

参考:

3 ways to run Spring (the Rails app preloader) and how to disable it | makandra dev

Rails Spring breaking generators – Stack Overflow

SPRING_LOG

SPRING_LOG:ログファイルを指定する環境変数

rails コマンドの実行時にコマンドラインで指定する。

$ spring stop
$ SPRING_LOG=log/spring.log rails runner 'nil'

config/spring.rb で指定する。(※ spring server コマンドで標準出力に何も表示されなくなるので注意)

# config/spring.rb
ENV["SPRING_LOG"] = "log/spring.log"

ログファイルを指定して spring server をバックグラウンドで実行する。

$ SPRING_LOG=log/spring.log spring server &
$ tail -f log/spring.log

参考:

Environment variables – rails/spring: Rails application preloader – GitHub

Troubleshooting – rails/spring: Rails application preloader – GitHub

プラグイン開発時に RSpec で使う

参考:

spring の導入時に application.rb が見つからない | kikukawa’s diary

spring コマンド実行時に読み込まれる ~/.spring.rb についての試行錯誤の記録 – Qiita

production 環境で spring を bundle install しない

Gemfile で production 環境に Spring を含めない。デプロイ時に development 環境と test 環境の gem をインストールしない。

$ bundle install --without development test

参考:

Rails の bundle の without オプション | Rails Webook

rails コマンドでエラー cannot load such file — bundler/setup (LoadError) – Qiita

rails console on production uses spring · Issue #318 · rails/spring – GitHub

Update README on deployment by visibletrap · Pull Request #337 · rails/spring – GitHub

Warn if Spring is running in production by agis · Pull Request #532 · rails/spring – GitHub

エンジンの開発で Spring を使う

参考:

How to Setup RSpec, Factory Bot and Spring for a Rails 5 Engine – Mohnish G J – Medium

Spring not working fast enough with an engine · Issue #316 · rails/spring – GitHub

Spring can’t run Rails server when developing an engine · Issue #323 · rails/spring – GitHub

config/spring.rb not loaded if used within engine · Issue #144 · rails/spring – GitHub

Rails engine test/dummy with Spork, Guard, RSpec? – Stack Overflow

ハングアップ

参考:

Spring hangs a lot · Issue #396 · rails/spring – GitHub

uninitialized constant エラー

参考:

Spring returns error after a few tries · Issue #384 · rails/spring – GitHub

LoadError

参考:

Don’t supress non-spring load errors in binstub by felixbuenemann · Pull Request #444 · rails/spring – GitHub

エンジンで使うと Pathname がエラーを起こす

TypeError が起こる。

TypeError: no implicit conversion of Pathname into String

原因:

config/environment.rb が存在しない。

対応策:

config/environment.rb を作成する。

# config/environment.rb
require_relative "../test/dummy/config/environment"

代替

参考:

Spork / Zeus / Spring によるテスト実行時間の短縮 | Ruby on Rails with OIAX

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です