読者です 読者をやめる 読者になる 読者になる

なんだか挙動がわからないruby-1.9

Ruby

こんなコードを動かしてみる

require 'rubygems'
def rubygems_version
  Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
end                
                   
unless rubygems_version  >= '0.9.4'
  puts 'OK'
end

1.8と1.9でそれぞれ実行

$ ruby jikken.rb 
OK
$ ruby19 jikken.rb 
jikken.rb:6:in `
': undefined method `>=' for nil:NilClass (NoMethodError)

あれれ?なんで1.9ではエラーなの?
ちょっとコードを改造。

require 'rubygems'
def rubygems_version
  Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
end                
Gem::RubyGemsVersion
unless rubygems_version  >= '0.9.4'
  puts 'OK'
end

結果は

$ ruby19 jikken.rb 

何も表示されず。しっかし、最初と挙動がまた違うのはよくわからん。
うーん。なんだろ。