class Gem::Commands::UpdateCommand
def execute
def execute if options[:system] update_rubygems return end gems_to_update = which_to_update( highest_installed_gems, options[:args].uniq ) if options[:explain] say "Gems to update:" gems_to_update.each do |name_tuple| say " #{name_tuple.full_name}" end return end say "Updating installed gems" updated = update_gems gems_to_update installed_names = highest_installed_gems.keys updated_names = updated.map(&:name) not_updated_names = options[:args].uniq - updated_names not_installed_names = not_updated_names - installed_names up_to_date_names = not_updated_names - not_installed_names if updated.empty? say "Nothing to update" else say "Gems updated: #{updated_names.join(" ")}" end say "Gems already up-to-date: #{up_to_date_names.join(" ")}" unless up_to_date_names.empty? say "Gems not currently installed: #{not_installed_names.join(" ")}" unless not_installed_names.empty? end