class Gem::Commands::UninstallCommand
def uninstall_specific
def uninstall_specific deplist = Gem::DependencyList.new original_gem_version = {} get_all_gem_names_and_versions.each do |name, version| original_gem_version[name] = version || options[:version] gem_specs = Gem::Specification.find_all_by_name(name, original_gem_version[name]) say("Gem '#{name}' is not installed") if gem_specs.empty? gem_specs.each do |spec| deplist.add spec end end deps = deplist.strongly_connected_components.flatten.reverse gems_to_uninstall = {} deps.each do |dep| unless gems_to_uninstall[dep.name] gems_to_uninstall[dep.name] = true unless original_gem_version[dep.name] == Gem::Requirement.default options[:version] = dep.version end uninstall_gem(dep.name) end end end