From 5a90f9e8f84533e7859232895fc4bbe6b31cc771 Mon Sep 17 00:00:00 2001 From: hsbt Date: Fri, 4 Mar 2016 00:29:40 +0000 Subject: * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.1. Please see entries of 2.6.0 and 2.6.1 on https://github.com/rubygems/rubygems/blob/master/History.txt [fix GH-1270] Patch by @segiddins git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/commands/cleanup_command.rb | 11 ++++++++--- lib/rubygems/commands/install_command.rb | 1 + lib/rubygems/commands/open_command.rb | 4 ++++ lib/rubygems/commands/push_command.rb | 10 +++++++--- lib/rubygems/commands/update_command.rb | 1 + 5 files changed, 21 insertions(+), 6 deletions(-) (limited to 'lib/rubygems/commands') diff --git a/lib/rubygems/commands/cleanup_command.rb b/lib/rubygems/commands/cleanup_command.rb index 46f89f1bb8..83ee6b5c7c 100644 --- a/lib/rubygems/commands/cleanup_command.rb +++ b/lib/rubygems/commands/cleanup_command.rb @@ -76,6 +76,9 @@ If no gems are named all gems in GEM_HOME are cleaned. end def clean_gems + @original_home = Gem.dir + @original_path = Gem.path + get_primary_gems get_candidate_gems get_gems_to_cleanup @@ -87,9 +90,6 @@ If no gems are named all gems in GEM_HOME are cleaned. deps = deplist.strongly_connected_components.flatten - @original_home = Gem.dir - @original_path = Gem.path - deps.reverse_each do |spec| uninstall_dep spec end @@ -108,6 +108,7 @@ If no gems are named all gems in GEM_HOME are cleaned. end def get_gems_to_cleanup + gems_to_cleanup = @candidate_gems.select { |spec| @primary_gems[spec.name].version != spec.version } @@ -116,6 +117,10 @@ If no gems are named all gems in GEM_HOME are cleaned. spec.default_gem? } + gems_to_cleanup = gems_to_cleanup.select { |spec| + spec.base_dir == @original_home + } + @default_gems += default_gems @default_gems.uniq! @gems_to_cleanup = gems_to_cleanup.uniq diff --git a/lib/rubygems/commands/install_command.rb b/lib/rubygems/commands/install_command.rb index 5f0934aa17..4dd2f943c1 100644 --- a/lib/rubygems/commands/install_command.rb +++ b/lib/rubygems/commands/install_command.rb @@ -186,6 +186,7 @@ to write the specification by hand. For example: end def execute + if options.include? :gemdeps then install_from_gemdeps return # not reached diff --git a/lib/rubygems/commands/open_command.rb b/lib/rubygems/commands/open_command.rb index 957d369b26..a89b7421e3 100644 --- a/lib/rubygems/commands/open_command.rb +++ b/lib/rubygems/commands/open_command.rb @@ -15,6 +15,10 @@ class Gem::Commands::OpenCommand < Gem::Command "Opens gem sources in EDITOR") do |editor, options| options[:editor] = editor || get_env_editor end + add_option('-v', '--version VERSION', String, + "Opens specific gem version") do |version| + options[:version] = version + end end def arguments # :nodoc: diff --git a/lib/rubygems/commands/push_command.rb b/lib/rubygems/commands/push_command.rb index 035a03e5e7..6adeff6b30 100644 --- a/lib/rubygems/commands/push_command.rb +++ b/lib/rubygems/commands/push_command.rb @@ -76,13 +76,17 @@ You can upgrade or downgrade to the latest release version with: @host = gem_data.spec.metadata['default_gem_server'] end - # Always include this, even if it's nil - args << @host + push_host = nil if gem_data.spec.metadata.has_key?('allowed_push_host') - args << gem_data.spec.metadata['allowed_push_host'] + push_host = gem_data.spec.metadata['allowed_push_host'] end + @host ||= push_host + + # Always include @host, even if it's nil + args += [ @host, push_host ] + say "Pushing gem to #{@host || Gem.host}..." response = rubygems_api_request(*args) do |request| diff --git a/lib/rubygems/commands/update_command.rb b/lib/rubygems/commands/update_command.rb index d654a5fa4e..688e9b0e6c 100644 --- a/lib/rubygems/commands/update_command.rb +++ b/lib/rubygems/commands/update_command.rb @@ -85,6 +85,7 @@ command to remove old versions. end def execute + if options[:system] then update_rubygems return -- cgit v1.2.3