class Gem::Doctor
Cleans up after a partially-failed uninstall or for an invalid Gem::Specification.
If a specification was removed by hand this will remove any remaining files.
If a corrupt specification was installed this will clean up warnings by removing the bogus specification.
Public Class Methods
new(gem_repository, dry_run = false)
click to toggle source
Creates a new Gem::Doctor that will clean up
gem_repository
. Only one gem repository may be cleaned at a
time.
If dry_run
is true no files or directories will be removed.
# File lib/rubygems/doctor.rb, line 40 def initialize gem_repository, dry_run = false @gem_repository = Pathname(gem_repository) @dry_run = dry_run @installed_specs = nil end
Public Instance Methods
doctor()
click to toggle source
Cleans up uninstalled files and invalid gem specifications
# File lib/rubygems/doctor.rb, line 64 def doctor @orig_home = Gem.dir @orig_path = Gem.path say "Checking #{@gem_repository}" Gem.use_paths @gem_repository.to_s unless gem_repository? then say 'This directory does not appear to be a RubyGems repository, ' + 'skipping' say return end doctor_children say ensure Gem.use_paths @orig_home, *@orig_path end
gem_repository?()
click to toggle source
Are we doctoring a gem repository?
# File lib/rubygems/doctor.rb, line 57 def gem_repository? not installed_specs.empty? end