require されているモジュールのバージョンを知りたい!調べたい!
Perl の場合 Google さんで検索すれば1件目にはHITするのに、Ruby はまったく HIT せず。
とんちんかんな検索結果ばっかりで困った。。。
う〜ん?
なんだかんだで、Perl コミュニティの大きさって偉大だなぁ。
ゴミ記事ばっかり量産しているこんな blog でゴメンナサイ。
結果としては、Ruby のモジュールはたいていが RubyGems を経由してインストールされるため、rubygems にバージョンを調べる機能がついているみたい。
って、rubygems ではバージョン指定してモジュールを require できるんだから、バージョン調べられて当然か。
そもそもそれを言い出したら
$ gem list
で見て、どうせ標準で require されるのは最新版でしょ?
とか考えてればいいのかな?
でも個別に $GEM_HOME とか設定してたら、どこが優先されるの?
それとも、それでもやっぱり最新版が require されるの?
うーん、今度調べてみよう。。。
それはいいとして、早速 irb を使って rubygems 経由でバージョンの確認をしてみました。
require 'rubygems' require 'sequel' puts Gem.loaded_specs['sequel'].version # => 2.8.0
というわけで、2.8.0 が require されていることが分かりました。
ついでに、バージョンを指定した場合。
require 'rubygems' gem 'sequel', '= 1.5.0' require 'sequel' puts Gem.loaded_specs['sequel'].version #=> 1.5.0
きちんと 1.5.0 が require されていました。
って、これで違うバージョンが require されていたら問題ですが。
複数のバージョンを混在させておいても、キチンと細かくバージョンを指定して require できるというのは、RubyGems のすばらしいところでもありますね。
ここまで細かくバージョンを指定して require するのは Perl にはない機能だと思いますが。。。?
実は存在するのかな?