/tools/Ruby/lib/ruby/site_ruby/1.8/rubygems/commands/outdated_command.rb

http://github.com/agross/netopenspace · Ruby · 35 lines · 24 code · 10 blank · 1 comment · 1 complexity · 8af91758d40f086ac9337b0eac28048e MD5 · raw file

  1. require 'rubygems/command'
  2. require 'rubygems/local_remote_options'
  3. require 'rubygems/spec_fetcher'
  4. require 'rubygems/version_option'
  5. class Gem::Commands::OutdatedCommand < Gem::Command
  6. include Gem::LocalRemoteOptions
  7. include Gem::VersionOption
  8. def initialize
  9. super 'outdated', 'Display all gems that need updates'
  10. add_local_remote_options
  11. add_platform_option
  12. end
  13. def execute
  14. # FIX: this should be able to be Gem.source_index but our test fails :(
  15. locals = Gem::SourceIndex.new Gem::SourceIndex.installed_spec_directories
  16. locals.outdated.sort.each do |name|
  17. local = locals.find_name(name).last
  18. dep = Gem::Dependency.new local.name, ">= #{local.version}"
  19. remotes = Gem::SpecFetcher.fetcher.fetch dep
  20. next if remotes.empty?
  21. remote = remotes.last.first
  22. say "#{local.name} (#{local.version} < #{remote.version})"
  23. end
  24. end
  25. end