class Gem::Uninstaller

def uninstall_gem(spec)

def uninstall_gem(spec)
  @spec = spec
  unless dependencies_ok? spec
    if abort_on_dependent? || !ask_if_ok(spec)
      raise Gem::DependencyRemovalException,
        "Uninstallation aborted due to dependent gem(s)"
    end
  end
  Gem.pre_uninstall_hooks.each do |hook|
    hook.call self
  end
  remove_executables @spec
  remove @spec
  Gem.post_uninstall_hooks.each do |hook|
    hook.call self
  end
  @spec = nil
end