From 349af96c641c6fc0853ba03b0d7d497181b5a63e Mon Sep 17 00:00:00 2001 From: yugui Date: Mon, 4 May 2009 12:31:06 +0000 Subject: merges r23208 from trunk into ruby_1_9_1. -- * gem_prelude.rb (Gem::QuickLoader#push_gem_version_on_load_path): check for requirement if the gem is installed. a patch from Kyosuke MOROHASHI at [ruby-dev:38020]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ gem_prelude.rb | 20 +++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f0f2d348..f0583b26d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sun Apr 19 13:17:25 2009 Nobuyoshi Nakada + + * gem_prelude.rb (Gem::QuickLoader#push_gem_version_on_load_path): + check for requirement if the gem is installed. a patch from + Kyosuke MOROHASHI at [ruby-dev:38020]. + Wed Apr 15 20:24:49 2009 Yusuke Endoh * array.c (rb_ary_flatten): flatten(0) works as Array#dup. diff --git a/gem_prelude.rb b/gem_prelude.rb index 553912c83..4eb0e4e30 100644 --- a/gem_prelude.rb +++ b/gem_prelude.rb @@ -245,15 +245,17 @@ if defined?(Gem) then requirement, version = version_requirements[0].split requirement.strip! - if requirement == ">" || requirement == ">=" - if (GemVersions[gem_name] <=> Gem.calculate_integers_for_gem_version(version)) >= 0 - return false - end - elsif requirement == "~>" - loaded_version = GemVersions[gem_name] - required_version = Gem.calculate_integers_for_gem_version(version) - if loaded_version && (loaded_version[0] == required_version[0]) - return false + if loaded_version = GemVersions[gem_name] + case requirement + when ">", ">=" + if (loaded_version <=> Gem.calculate_integers_for_gem_version(version)) >= 0 + return false + end + when "~>" + required_version = Gem.calculate_integers_for_gem_version(version) + if (loaded_version[0] == required_version[0]) + return false + end end end -- cgit