execute (Gem::Commands::FetchCommand)

    # File lib/rubygems/commands/fetch_command.rb, line 34
      def execute
        version = options[:version] || Gem::Requirement.default

        gem_names = get_all_gem_names

        gem_names.each do |gem_name|
          dep = Gem::Dependency.new gem_name, version
          specs_and_sources = Gem::SourceInfoCache.search_with_source dep, true

          specs_and_sources.sort_by { |spec,| spec.version }

          spec, source_uri = specs_and_sources.last

          gem_file = "#{spec.full_name}.gem"

          gem_path = File.join source_uri, 'gems', gem_file

          gem = Gem::RemoteFetcher.fetcher.fetch_path gem_path

          File.open gem_file, 'wb' do |fp|
            fp.write gem
          end

          say "Downloaded #{gem_file}"
        end
      end