ruby-changes:14371
From: nobu <ko1@a...>
Date: Wed, 30 Dec 2009 17:59:33 +0900 (JST)
Subject: [ruby-changes:14371] Ruby:r26201 (trunk): * gem_prelude.rb (push_all_highest_version_gems_on_load_path):
nobu 2009-12-30 17:59:16 +0900 (Wed, 30 Dec 2009) New Revision: 26201 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26201 Log: * gem_prelude.rb (push_all_highest_version_gems_on_load_path): simplified. Modified files: trunk/ChangeLog trunk/gem_prelude.rb trunk/lib/rubygems/installer.rb trunk/lib/rubygems/test_utilities.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 26200) +++ ChangeLog (revision 26201) @@ -1,5 +1,8 @@ -Wed Dec 30 17:49:47 2009 Nobuyoshi Nakada <nobu@r...> +Wed Dec 30 17:59:14 2009 Nobuyoshi Nakada <nobu@r...> + * gem_prelude.rb (push_all_highest_version_gems_on_load_path): + simplified. + * lib/rubygems/command_manager.rb (Gem#load_and_instantiate): rescue only NameError from const_get. Index: gem_prelude.rb =================================================================== --- gem_prelude.rb (revision 26200) +++ gem_prelude.rb (revision 26201) @@ -233,19 +233,11 @@ Dir.entries(gems_directory).each do |gem_directory_name| next if gem_directory_name == "." || gem_directory_name == ".." - dash = gem_directory_name.rindex("-") - next if dash.nil? - - gem_name = gem_directory_name[0...dash] + next unless gem_name = gem_directory_name[/(.*)-(.*)/, 1] + new_version = integers_for($2) current_version = GemVersions[gem_name] - new_version = integers_for(gem_directory_name[dash+1..-1]) - if current_version then - if (current_version <=> new_version) == -1 then - GemVersions[gem_name] = new_version - GemPaths[gem_name] = File.join(gems_directory, gem_directory_name) - end - else + if !current_version or (current_version <=> new_version) < 0 then GemVersions[gem_name] = new_version GemPaths[gem_name] = File.join(gems_directory, gem_directory_name) end Index: lib/rubygems/installer.rb =================================================================== --- lib/rubygems/installer.rb (revision 26200) +++ lib/rubygems/installer.rb (revision 26201) @@ -325,7 +325,7 @@ @spec.executables.each do |filename| filename.untaint - bin_path = File.expand_path File.join(@gem_dir, @spec.bindir, filename) + bin_path = File.expand_path("#{@spec.bindir}/#{filename}", @gem_dir) mode = File.stat(bin_path).mode | 0111 File.chmod mode, bin_path Index: lib/rubygems/test_utilities.rb =================================================================== --- lib/rubygems/test_utilities.rb (revision 26200) +++ lib/rubygems/test_utilities.rb (revision 26201) @@ -102,30 +102,17 @@ #-- # This class was added to flush out problems in Rubinius' IO implementation. -class TempIO - - @@count = 0 - +class TempIO < Tempfile def initialize(string = '') - @tempfile = Tempfile.new "TempIO-#{@@count += 1}" - @tempfile.binmode - @tempfile.write string - @tempfile.rewind + super "TempIO" + binmode + write string + rewind end - def method_missing(meth, *args, &block) - @tempfile.send(meth, *args, &block) - end - - def respond_to?(meth) - @tempfile.respond_to? meth - end - def string - @tempfile.flush - - Gem.read_binary @tempfile.path + flush + Gem.read_binary path end - end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/