class Gem::Commands::CheckCommand

Public Class Methods

new() click to toggle source
Calls superclass method Gem::Command::new
# File rubygems/commands/check_command.rb, line 10
def initialize
  super 'check', 'Check a gem repository for added or missing files',
        :alien => true, :doctor => false, :dry_run => false, :gems => true

  add_option('-a', '--[no-]alien',
             'Report "unmanaged" or rogue files in the',
             'gem repository') do |value, options|
    options[:alien] = value
  end

  add_option('--[no-]doctor',
             'Clean up uninstalled gems and broken',
             'specifications') do |value, options|
    options[:doctor] = value
  end

  add_option('--[no-]dry-run',
             'Do not remove files, only report what',
             'would be removed') do |value, options|
    options[:dry_run] = value
  end

  add_option('--[no-]gems',
             'Check installed gems for problems') do |value, options|
    options[:gems] = value
  end

  add_version_option 'check'
end

Public Instance Methods

check_gems() click to toggle source
# File rubygems/commands/check_command.rb, line 40
def check_gems
  say 'Checking gems...'
  say
  gems = get_all_gem_names rescue []

  Gem::Validator.new.alien(gems).sort.each do |key, val|
    unless val.empty?
      say "#{key} has #{val.size} problems"
      val.each do |error_entry|
        say "  #{error_entry.path}:"
        say "    #{error_entry.problem}"
      end
    else
      say "#{key} is error-free" if Gem.configuration.verbose
    end
    say
  end
end
doctor() click to toggle source
# File rubygems/commands/check_command.rb, line 59
def doctor
  say 'Checking for files from uninstalled gems...'
  say

  Gem.path.each do |gem_repo|
    doctor = Gem::Doctor.new gem_repo, options[:dry_run]
    doctor.doctor
  end
end
execute() click to toggle source
# File rubygems/commands/check_command.rb, line 69
def execute
  check_gems if options[:gems]
  doctor if options[:doctor]
end