# class Gem::Commands::CheckCommand

### Public Class Methods

new() click to toggle source
Calls superclass method `Gem::Command::new`

    # File lib/rubygems/commands/check_command.rb, line 11
    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 lib/rubygems/commands/check_command.rb, line 41
    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 lib/rubygems/commands/check_command.rb, line 60
    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 lib/rubygems/commands/check_command.rb, line 70
    def execute
      check_gems if options[:gems]
      doctor if options[:doctor]
    end