gem メソッドで gem ライブラリのバージョンを指定
21:07:06 wtnabe< ruby で require 時にバージョン指定することってできない
のかな
22:23:11 ma2> @wtnabe gemを使わないとダメなんじゃないでしょうか。
22:25:20 wtnabe< @ma2 えっと、require_gem でできるってことですか?
22:30:49 wtnabe< あー Kernel#gem か。なるほど。
23:15:35 wtnabe< @ma2 gem 'GEM_NAME', 'version'; require 'GEM_NAME' で
すね。ありがとうございます。
$ ri Kernel#gem
------------------------------------------------------------- Kernel#gem
gem(gem_name, *version_requirements)
------------------------------------------------------------------------
Use Kernel#gem to activate a specific version of +gem_name+.
(snip
例えば以下のように mechanzie 0.8.5 と 0.9.2 がインストールされているとします。
$ gem list -a mechanize
*** LOCAL GEMS ***
mechanize (0.9.2, 0.8.5)
普通に require すると当然バージョンは 0.9.2 になりますが、
$ ruby -e '
require "rubygems"
require "mechanize"
puts WWW::Mechanize::VERSION
'
0.9.2
gem メソッドでバージョンを明示するとそのバージョンを使うことができます。
$ ruby -e '
require "rubygems"
gem "mechanize", "0.8.5"
require "mechanize"
puts WWW::Mechanize::VERSION
'
0.8.5
この辺を見ると
RubyGems User Guide | RubyGems Manuals
ある特定バージョンだけでなく、「以降」、「以前」、これらを組み合わせた「範囲」も記述できるようです。なるへそ。