class Gem::Uninstaller
def remove(spec)
def remove(spec) unless path_ok?(@gem_home, spec) or (@user_install and path_ok?(Gem.user_dir, spec)) then e = Gem::GemNotInHomeException.new \ "Gem '#{spec.full_name}' is not installed in directory #{@gem_home}" e.spec = spec raise e end raise Gem::FilePermissionError, spec.base_dir unless File.writable?(spec.base_dir) FileUtils.rm_rf spec.full_gem_path FileUtils.rm_rf spec.extension_dir old_platform_name = spec.original_name gemspec = spec.spec_file unless File.exist? gemspec then gemspec = File.join(File.dirname(gemspec), "#{old_platform_name}.gemspec") end FileUtils.rm_rf gemspec gem = spec.cache_file gem = File.join(spec.cache_dir, "#{old_platform_name}.gem") unless File.exist? gem FileUtils.rm_rf gem Gem::RDoc.new(spec).remove say "Successfully uninstalled #{spec.full_name}" Gem::Specification.reset end