aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/commands/outdated_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/commands/outdated_command.rb')
-rw-r--r--lib/rubygems/commands/outdated_command.rb21
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/rubygems/commands/outdated_command.rb b/lib/rubygems/commands/outdated_command.rb
index f51bc5e93f..887faab0a2 100644
--- a/lib/rubygems/commands/outdated_command.rb
+++ b/lib/rubygems/commands/outdated_command.rb
@@ -15,18 +15,19 @@ class Gem::Commands::OutdatedCommand < Gem::Command
add_platform_option
end
- def description # :nodoc:
- <<-EOF
-The outdated command lists gems you way wish to upgrade to a newer version.
+ def execute
+ Gem::Specification.outdated.sort.each do |name|
+ local = Gem::Specification.find_all_by_name(name).max
+ dep = Gem::Dependency.new local.name, ">= #{local.version}"
+ remotes, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep
-You can check for dependency mismatches using the dependency command and
-update the gems with the update or install commands.
- EOF
- end
+ next if remotes.empty?
- def execute
- Gem::Specification.outdated_and_latest_version.each do |spec, remote_version|
- say "#{spec.name} (#{spec.version} < #{remote_version})"
+ remotes.sort! { |a,b| a[0].version <=> b[0].version }
+
+ highest = remotes.last.first
+
+ say "#{local.name} (#{local.version} < #{highest.version})"
end
end
end