mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rubygems: Update to RubyGems 1.8.9. Fixes uninstalling multiple
gems and gem cleanup. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d1919daa42
commit
cede48fd40
4 changed files with 42 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Aug 24 07:57:43 2011 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
|
* 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@zenspider.com>
|
Wed Aug 24 06:45:20 2011 Ryan Davis <ryand-ruby@zenspider.com>
|
||||||
|
|
||||||
* lib/minitest/*: Imported minitest 2.5.0 (r6557)
|
* lib/minitest/*: Imported minitest 2.5.0 (r6557)
|
||||||
|
|
|
@ -118,7 +118,7 @@ require "rubygems/deprecate"
|
||||||
# -The RubyGems Team
|
# -The RubyGems Team
|
||||||
|
|
||||||
module Gem
|
module Gem
|
||||||
VERSION = '1.8.8'
|
VERSION = '1.8.9'
|
||||||
|
|
||||||
##
|
##
|
||||||
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
||||||
|
@ -1027,7 +1027,9 @@ module Gem
|
||||||
# Use the +home+ and +paths+ values for Gem.dir and Gem.path. Used mainly
|
# Use the +home+ and +paths+ values for Gem.dir and Gem.path. Used mainly
|
||||||
# by the unit tests to provide environment isolation.
|
# 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 }
|
self.paths = { "GEM_HOME" => home, "GEM_PATH" => paths }
|
||||||
# TODO: self.paths = home, paths
|
# TODO: self.paths = home, paths
|
||||||
end
|
end
|
||||||
|
|
|
@ -73,6 +73,8 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute
|
def execute
|
||||||
|
original_path = Gem.path
|
||||||
|
|
||||||
get_all_gem_names.each do |gem_name|
|
get_all_gem_names.each do |gem_name|
|
||||||
begin
|
begin
|
||||||
Gem::Uninstaller.new(gem_name, options).uninstall
|
Gem::Uninstaller.new(gem_name, options).uninstall
|
||||||
|
@ -80,6 +82,8 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
||||||
spec = e.spec
|
spec = e.spec
|
||||||
alert("In order to remove #{spec.name}, please execute:\n" \
|
alert("In order to remove #{spec.name}, please execute:\n" \
|
||||||
"\tgem uninstall #{spec.name} --install-dir=#{spec.installation_path}")
|
"\tgem uninstall #{spec.name} --install-dir=#{spec.installation_path}")
|
||||||
|
ensure
|
||||||
|
Gem.use_paths(*original_path)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,6 +17,34 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
||||||
@executable = File.join(@gemhome, 'bin', 'executable')
|
@executable = File.join(@gemhome, 'bin', 'executable')
|
||||||
end
|
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
|
def test_execute_removes_executable
|
||||||
ui = Gem::MockGemUi.new
|
ui = Gem::MockGemUi.new
|
||||||
util_setup_gem ui
|
util_setup_gem ui
|
||||||
|
@ -91,5 +119,6 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
||||||
output = @ui.output
|
output = @ui.output
|
||||||
assert_match(/Successfully uninstalled/, output)
|
assert_match(/Successfully uninstalled/, output)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue