def execute
@installer = Gem::DependencyInstaller.new options
@updated = []
hig = {}
if options[:system] then
update_rubygems
return
else
say "Updating installed gems"
hig = {}
Gem::Specification.each do |spec|
if hig[spec.name].nil? or hig[spec.name].version < spec.version then
hig[spec.name] = spec
end
end
end
gems_to_update = which_to_update hig, options[:args].uniq
updated = update_gems gems_to_update
if updated.empty? then
say "Nothing to update"
else
say "Gems updated: #{updated.map { |spec| spec.name }.join ', '}"
if options[:generate_ri] then
updated.each do |gem|
Gem::DocManager.new(gem, options[:rdoc_args]).generate_ri
end
Gem::DocManager.update_ri_cache
end
if options[:generate_rdoc] then
updated.each do |gem|
Gem::DocManager.new(gem, options[:rdoc_args]).generate_rdoc
end
end
end
end