class Gem::Commands::CheckCommand - Documentation for Ruby 4.0
Description: Documentation for the Gem::Commands::CheckCommand class
Keywords: ruby,class,Gem::Commands::CheckCommand

🔍

No recent searches

# class Gem::Commands::CheckCommand

### Public Class Methods

new ()
Source

    # 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

Calls superclass method `Gem::Command::new`

### Public Instance Methods

check_gems ()
Source

    # File lib/rubygems/commands/check_command.rb, line 41
    def check_gems
      say "Checking gems..."
      say
      gems = begin
               get_all_gem_names
             rescue StandardError
               []
             end

      Gem::Validator.new.alien(gems).sort.each do |key, val|
        if val.empty?
          say "#{key} is error-free" if Gem.configuration.verbose
        else
          say "#{key} has #{val.size} problems"
          val.each do |error_entry|
            say "  #{error_entry.path}:"
            say "    #{error_entry.problem}"
          end
        end
        say
      end
    end

doctor ()
Source

    # File lib/rubygems/commands/check_command.rb, line 64
    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 ()
Source

    # File lib/rubygems/commands/check_command.rb, line 74
    def execute
      check_gems if options[:gems]
      doctor if options[:doctor]
    end