Bug #1163
closedgem_prelude raise NoMethodError if require uninsalled gem with version.
Description
=begin
gemをKernel#gemで読み込む際、
(1)インストールされていないgemで、かつ
(2)バージョンを指定した場合に
NoMethodErrorが発生します。ここはGem::LoadErrorであるべきではないでしょうか。
ご検討お願いします。
インストールされていないgemをバージョン付きで読み込むとNoMethodError¶
$ ruby19 -ve "p gem 'rackie', '>= 1.0.0'"
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-darwin9]
internal:gem_prelude:249:in push_gem_version_on_load_path': undefined method
<=>' for nil:NilClass (NoMethodError)
from internal:gem_prelude:14:in gem' from -e:1:in
'
インストールされていないgemを読み込むとGem::LoadError¶
$ ruby19 -ve "p gem 'rackie'"
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-darwin9]
internal:gem_prelude:234:in push_gem_version_on_load_path': Could not find RubyGem rackie (>= 0) (Gem::LoadError) from <internal:gem_prelude>:14:in
gem'
from -e:1:in `'[telperion:~/tmp/rails/actionpack]
19:47# moro[1]$
インストールされているgemをバージョン付きで読み込むとGem::LoadError¶
$ ruby19 -ve "p gem 'rack', '>= 1.0.0'"
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-darwin9]
/Users/moro/opt/ruby191/lib/ruby19/1.9.1/rubygems.rb:636:in report_activate_error': RubyGem version error: rack(0.9.1 not >= 1.0.0) (Gem::LoadError) from /Users/moro/opt/ruby191/lib/ruby19/1.9.1/rubygems.rb:141:in
activate'
from /Users/moro/opt/ruby191/lib/ruby19/1.9.1/rubygems.rb:49:in gem' from <internal:gem_prelude>:261:in
push_gem_version_on_load_path'
from internal:gem_prelude:14:in gem' from -e:1:in
'[telperion:~/tmp/rails/actionpack]
=end
Files
Updated by matsuda (Akira Matsuda) over 15 years ago
=begin
+1 for this patch.
同じ問題でハマりました。もろはしさんの提案どおりの仕様でよいと思います。
=end
Updated by nobu (Nobuyoshi Nakada) over 15 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r23208.
=end