ruby-changes:11699
From: yugui <ko1@a...>
Date: Mon, 4 May 2009 21:47:44 +0900 (JST)
Subject: [ruby-changes:11699] Ruby:r23340 (ruby_1_9_1): merges r23208 from trunk into ruby_1_9_1.
yugui 2009-05-04 21:31:06 +0900 (Mon, 04 May 2009) New Revision: 23340 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23340 Log: 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]. Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/gem_prelude.rb Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 23339) +++ ruby_1_9_1/ChangeLog (revision 23340) @@ -1,3 +1,9 @@ +Sun Apr 19 13:17:25 2009 Nobuyoshi Nakada <nobu@r...> + + * 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 <mame@t...> * array.c (rb_ary_flatten): flatten(0) works as Array#dup. Index: ruby_1_9_1/gem_prelude.rb =================================================================== --- ruby_1_9_1/gem_prelude.rb (revision 23339) +++ ruby_1_9_1/gem_prelude.rb (revision 23340) @@ -245,16 +245,18 @@ 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 + 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 - 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 - end end QuickLoader.load_full_rubygems_library -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/