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

ruby-changes:14370

From: nobu <ko1@a...>
Date: Wed, 30 Dec 2009 17:52:01 +0900 (JST)
Subject: [ruby-changes:14370] Ruby:r26200 (trunk): * lib/rubygems/command_manager.rb (Gem#load_and_instantiate):

nobu	2009-12-30 17:49:48 +0900 (Wed, 30 Dec 2009)

  New Revision: 26200

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26200

  Log:
    * lib/rubygems/command_manager.rb (Gem#load_and_instantiate):
      rescue only NameError from const_get.

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/command_manager.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26199)
+++ ChangeLog	(revision 26200)
@@ -1,5 +1,8 @@
-Wed Dec 30 17:45:53 2009  Nobuyoshi Nakada  <nobu@r...>
+Wed Dec 30 17:49:47 2009  Nobuyoshi Nakada  <nobu@r...>
 
+	* lib/rubygems/command_manager.rb (Gem#load_and_instantiate):
+	  rescue only NameError from const_get.
+
 	* lib/rubygems/source_index.rb (Gem#load_specification): don't use
 	  RUBY_VERSION to branch.
 
Index: lib/rubygems/command_manager.rb
===================================================================
--- lib/rubygems/command_manager.rb	(revision 26199)
+++ lib/rubygems/command_manager.rb	(revision 26200)
@@ -154,11 +154,12 @@
 
   def load_and_instantiate(command_name)
     command_name = command_name.to_s
+    const_name = command_name.capitalize.gsub(/_(.)/) { $1.upcase } << "Command"
+    commands = Gem::Commands
     retried = false
 
     begin
-      const_name = command_name.capitalize.gsub(/_(.)/) { $1.upcase }
-      Gem::Commands.const_get("#{const_name}Command").new
+      commands.const_get(const_name)
     rescue NameError
       if retried then
         raise
@@ -167,7 +168,7 @@
         require "rubygems/commands/#{command_name}_command"
         retry
       end
-    end
+    end.new
   end
 
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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