class Gem::Commands::RebuildCommand

def download_gem(gem_name, gem_version, old_file)

def download_gem(gem_name, gem_version, old_file)
  # This code was based loosely off the `gem fetch` command.
  version = "= #{gem_version}"
  dep = Gem::Dependency.new gem_name, version
  specs_and_sources, errors =
    Gem::SpecFetcher.fetcher.spec_for_dependency dep
  # There should never be more than one item in specs_and_sources,
  # since we search for an exact version.
  spec, source = specs_and_sources[0]
  if spec.nil?
    show_lookup_failure gem_name, version, errors, options[:domain]
    terminate_interaction 1
  end
  download_path = source.download spec
  FileUtils.move(download_path, old_file)
  say "Downloaded #{gem_name} version #{gem_version} as #{old_file}."
end