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

ruby-changes:20991

From: drbrain <ko1@a...>
Date: Wed, 24 Aug 2011 07:58:15 +0900 (JST)
Subject: [ruby-changes:20991] drbrain:r33040 (trunk): * lib/rubygems: Update to RubyGems 1.8.9. Fixes uninstalling multiple

drbrain	2011-08-24 07:58:06 +0900 (Wed, 24 Aug 2011)

  New Revision: 33040

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

  Log:
    * lib/rubygems:  Update to RubyGems 1.8.9.  Fixes uninstalling multiple
      gems and gem cleanup.

  Modified files:
    trunk/ChangeLog
    trunk/lib/rubygems/commands/uninstall_command.rb
    trunk/lib/rubygems.rb
    trunk/test/rubygems/test_gem_commands_uninstall_command.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33039)
+++ ChangeLog	(revision 33040)
@@ -1,3 +1,8 @@
+Wed Aug 24 07:57:43 2011  Eric Hodel  <drbrain@s...>
+
+	* lib/rubygems:  Update to RubyGems 1.8.9.  Fixes uninstalling multiple
+	  gems and gem cleanup.
+
 Wed Aug 24 06:45:20 2011  Ryan Davis  <ryand-ruby@z...>
 
 	* lib/minitest/*: Imported minitest 2.5.0 (r6557)
Index: lib/rubygems/commands/uninstall_command.rb
===================================================================
--- lib/rubygems/commands/uninstall_command.rb	(revision 33039)
+++ lib/rubygems/commands/uninstall_command.rb	(revision 33040)
@@ -73,6 +73,8 @@
   end
 
   def execute
+    original_path = Gem.path
+
     get_all_gem_names.each do |gem_name|
       begin
         Gem::Uninstaller.new(gem_name, options).uninstall
@@ -80,6 +82,8 @@
         spec = e.spec
         alert("In order to remove #{spec.name}, please execute:\n" \
               "\tgem uninstall #{spec.name} --install-dir=#{spec.installation_path}")
+      ensure
+        Gem.use_paths(*original_path)
       end
     end
   end
Index: lib/rubygems.rb
===================================================================
--- lib/rubygems.rb	(revision 33039)
+++ lib/rubygems.rb	(revision 33040)
@@ -118,7 +118,7 @@
 # -The RubyGems Team
 
 module Gem
-  VERSION = '1.8.8'
+  VERSION = '1.8.9'
 
   ##
   # Raised when RubyGems is unable to load or activate a gem.  Contains the
@@ -1027,7 +1027,9 @@
   # Use the +home+ and +paths+ values for Gem.dir and Gem.path.  Used mainly
   # by the unit tests to provide environment isolation.
 
-  def self.use_paths(home, paths=[])
+  def self.use_paths(home, *paths)
+    paths = nil if paths == [nil]
+    paths = paths.first if Array === Array(paths).first
     self.paths = { "GEM_HOME" => home, "GEM_PATH" => paths }
     # TODO: self.paths = home, paths
   end
Index: test/rubygems/test_gem_commands_uninstall_command.rb
===================================================================
--- test/rubygems/test_gem_commands_uninstall_command.rb	(revision 33039)
+++ test/rubygems/test_gem_commands_uninstall_command.rb	(revision 33040)
@@ -17,6 +17,34 @@
     @executable = File.join(@gemhome, 'bin', 'executable')
   end
 
+  def test_execute_mulitple
+    @other = quick_gem 'c'
+    util_make_exec @other
+    util_build_gem @other
+
+    @other_installer = util_installer @other, @gemhome
+
+    ui = Gem::MockGemUi.new
+    util_setup_gem ui
+
+    build_rake_in do
+      use_ui ui do
+        @other_installer.install
+      end
+    end
+
+    @cmd.options[:args] = [@spec.name, @other.name]
+
+    use_ui @ui do
+      @cmd.execute
+    end
+
+    output = @ui.output.split "\n"
+
+    assert_includes output, "Successfully uninstalled #{@spec.full_name}"
+    assert_includes output, "Successfully uninstalled #{@other.full_name}"
+  end
+
   def test_execute_removes_executable
     ui = Gem::MockGemUi.new
     util_setup_gem ui
@@ -91,5 +119,6 @@
     output = @ui.output
     assert_match(/Successfully uninstalled/, output)
   end
+
 end
 

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

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