class Gem::Commands::StaleCommand

Public Class Methods

new() click to toggle source
Calls superclass method Gem::Command.new
# File lib/rubygems/commands/stale_command.rb, line 5
def initialize
  super('stale', 'List gems along with access times')
end

Public Instance Methods

execute() click to toggle source
# 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