Merge trunk revision: 39327

* lib/rubygems/commands/update_command.rb:  Create the installer after
  options are processed.  [ruby-trunk - Bug #7779]
* test/rubygems/test_gem_commands_update_command.rb:  Test for the
  above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
drbrain 2013-02-20 20:07:57 +00:00
parent bf2b8c8925
commit 79db75dc4e
3 changed files with 30 additions and 1 deletions

View file

@ -14,6 +14,8 @@ class Gem::Commands::UpdateCommand < Gem::Command
include Gem::LocalRemoteOptions
include Gem::VersionOption
attr_reader :installer # :nodoc:
def initialize
super 'update', 'Update installed gems to the latest version',
:document => %w[rdoc ri],
@ -39,7 +41,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
add_prerelease_option "as update targets"
@updated = []
@installer = Gem::DependencyInstaller.new options
@installer = nil
end
def arguments # :nodoc:
@ -85,6 +87,9 @@ class Gem::Commands::UpdateCommand < Gem::Command
def update_gem name, version = Gem::Requirement.default
return if @updated.any? { |spec| spec.name == name }
@installer ||= Gem::DependencyInstaller.new options
success = false
say "Updating #{name}"