Class: Gem::Commands::StaleCommand
- Inherits:
-
Gem::Command
- Object
- Gem::Command
- Gem::Commands::StaleCommand
- Defined in:
- lib/rubygems/commands/stale_command.rb
Instance Attribute Summary
Attributes inherited from Gem::Command
#command, #defaults, #options, #program_name, #summary
Instance Method Summary collapse
-
#description ⇒ Object
:nodoc:.
- #execute ⇒ Object
-
#initialize ⇒ StaleCommand
constructor
A new instance of StaleCommand.
-
#usage ⇒ Object
:nodoc:.
Methods inherited from Gem::Command
add_common_option, #add_extra_args, #add_option, add_specific_extra_args, #arguments, #begins?, build_args, build_args=, #check_deprecated_options, common_options, #defaults_str, #deprecate_option, #deprecated?, extra_args, extra_args=, #get_all_gem_names, #get_all_gem_names_and_versions, #get_one_gem_name, #get_one_optional_argument, #handle_options, #handles?, #invoke, #invoke_with_build_args, #merge_options, #remove_option, #show_help, #show_lookup_failure, specific_extra_args, specific_extra_args_hash, specific_extra_args_hash=, #when_invoked
Methods included from UserInteraction
#alert, #alert_error, #alert_warning, #ask, #ask_for_password, #ask_yes_no, #choose_from_list, #say, #terminate_interaction, #verbose
Methods included from DefaultUserInteraction
ui, #ui, ui=, #ui=, use_ui, #use_ui
Methods included from Text
#clean_text, #format_text, #levenshtein_distance, #min3, #truncate_text
Constructor Details
#initialize ⇒ StaleCommand
Returns a new instance of StaleCommand.
5 6 7 |
# File 'lib/rubygems/commands/stale_command.rb', line 5 def initialize super('stale', 'List gems along with access times') end |
Instance Method Details
#description ⇒ Object
:nodoc:
9 10 11 12 13 14 15 16 17 |
# File 'lib/rubygems/commands/stale_command.rb', line 9 def description # :nodoc: <<-EOF The stale command lists the latest access time for all the files in your installed gems. You can use this command to discover gems and gem versions you are no longer using. EOF end |
#execute ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rubygems/commands/stale_command.rb', line 23 def execute gem_to_atime = {} Gem::Specification.each do |spec| name = spec.full_name Dir["#{spec.full_gem_path}/**/*.*"].each do |file| next if File.directory?(file) stat = File.stat(file) gem_to_atime[name] ||= stat.atime gem_to_atime[name] = stat.atime if gem_to_atime[name] < stat.atime end end gem_to_atime.sort_by {|_, atime| atime }.each do |name, atime| say "#{name} at #{atime.strftime '%c'}" end end |
#usage ⇒ Object
:nodoc:
19 20 21 |
# File 'lib/rubygems/commands/stale_command.rb', line 19 def usage # :nodoc: "#{program_name}" end |