diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-05 01:00:01 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-05 01:00:01 +0000 |
commit | 3434676e9e3c87c39fe4a8c411a041449efc7446 (patch) | |
tree | 1dabd9705561ef803bb9f62e6d8e3eaf0618a1cb /lib/rubygems/commands | |
parent | d24997cce12d27cec767ca7091a076df1b2319db (diff) | |
download | ruby-3434676e9e3c87c39fe4a8c411a041449efc7446.tar.gz |
* lib/rubygems: Import RubyGems 1.8.7:
Added missing require for `gem uninstall --format-executable`.
The correct name of the executable being uninstalled is now displayed
with --format-executable.
Fixed `gem unpack uninstalled_gem` default version picker.
RubyGems no longer claims a nonexistent gem can be uninstalled.
`gem which` no longer claims directories are requirable files.
`gem cleanup` continues cleaning up gems if one can't be uninstalled
due to permissions. Issue #82.
Gem repository directories are no longer created world-writable.
Patch by Sakuro OZAWA. [Ruby 1.9 - Bug #4930]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/commands')
-rw-r--r-- | lib/rubygems/commands/cleanup_command.rb | 11 | ||||
-rw-r--r-- | lib/rubygems/commands/setup_command.rb | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/rubygems/commands/cleanup_command.rb b/lib/rubygems/commands/cleanup_command.rb index 49bf660bc1..124c4c203a 100644 --- a/lib/rubygems/commands/cleanup_command.rb +++ b/lib/rubygems/commands/cleanup_command.rb @@ -61,6 +61,8 @@ installed elsewhere in GEM_PATH the cleanup command won't touch it. deps = deplist.strongly_connected_components.flatten.reverse + original_path = Gem.path + deps.each do |spec| if options[:dryrun] then say "Dry Run Mode: Would uninstall #{spec.full_name}" @@ -74,20 +76,21 @@ installed elsewhere in GEM_PATH the cleanup command won't touch it. :version => "= #{spec.version}", } - if Gem.user_dir == spec.base_dir then - uninstall_options[:install_dir] = spec.base_dir - end + uninstall_options[:user_install] = Gem.user_dir == spec.base_dir uninstaller = Gem::Uninstaller.new spec.name, uninstall_options begin uninstaller.uninstall rescue Gem::DependencyRemovalException, Gem::InstallError, - Gem::GemNotInHomeException => e + Gem::GemNotInHomeException, Gem::FilePermissionError => e say "Unable to uninstall #{spec.full_name}:" say "\t#{e.class}: #{e.message}" end end + + # Restore path Gem::Uninstaller may have change + Gem.use_paths(*original_path) end say "Clean Up Complete" diff --git a/lib/rubygems/commands/setup_command.rb b/lib/rubygems/commands/setup_command.rb index 97880bc45c..52a3b88fe3 100644 --- a/lib/rubygems/commands/setup_command.rb +++ b/lib/rubygems/commands/setup_command.rb @@ -124,7 +124,7 @@ By default, this RubyGems will install gem as: open release_notes do |io| text = io.gets '===' text << io.gets('===') - text[0...-3] + text[0...-3].sub(/^# coding:.*?^=/m, '') end else "Oh-no! Unable to find release notes!" |