[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]