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/