※springで爆速rake生活の最後で触れた、
springが推奨するgem本体のバージョン(2.1.0以上)に変更したい問題についての続報になります。
結論としては、rails3系ではspringは警告文を出してきてウザいです。rails4系からのspringは警告を出さずに(そして恐らく)速度が上がっているかと思われます
springで爆速rake生活でも触れましたが、bundle exec time spring rake routes
などを実行すると通常よりも高速にrake routesができていることがわかるのですが、rubygemのバージョンが2.1.0以下だと警告が出て鬱陶しいのが問題でした。
じゃあ警告を消してやろうじゃんということでローカルのGemのバージョンを上げてもRailsプロジェクトのGemのバージョンは上がらないようです。
なんとかRailsプロジェクト内のGemのバージョンを2.1.0以上に上げたい。
そう思っていろいろやっているうちに下の結果が得られました。
ruby 2.0.0p247
Rails 3.2.14
において
rubyに紐づいたgem
gem -v
#=> "2.0.3"
railsに紐づいたgem
irb(main):001:0> Gem::VERSION
=> "2.0.3"
ruby 2.1.0dev
Rails 4.0.2
において
(何故かpryが使えない悲しい #=> bundle execが必要だったか)
rubyに紐づいたgem
gem -v
#=> "2.2.0.preview.1"
railsに紐づいたgem
irb(main):001:0> Gem::VERSION
=> "2.2.0.preview.1"
この結果から分かるのは、railsで使用するgemはそのrailsのバージョンを作るのに使われているgemなので、railsのバージョンを上げなければgemのバージョンは上がらない。つまり、springの警告を消すためにはrails3.2.14以上rails4.0.2以下のrailsを使用する必要があると言うことです。
※厳密にどのrailsバージョンからspringが早くなるかとか、既存のrailsプロジェクトのgemのバージョンを上げられないかとかは面倒なので調べませんが、Gem::VERSION
がどこからバージョンをとってきているのか深堀したら何かわかるかもしれませんね。