summaryrefslogtreecommitdiff
path: root/lib/rubygems/commands/fetch_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/commands/fetch_command.rb')
-rw-r--r--lib/rubygems/commands/fetch_command.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/rubygems/commands/fetch_command.rb b/lib/rubygems/commands/fetch_command.rb
index 666d83e730..e7c9cc9525 100644
--- a/lib/rubygems/commands/fetch_command.rb
+++ b/lib/rubygems/commands/fetch_command.rb
@@ -13,6 +13,7 @@ class Gem::Commands::FetchCommand < Gem::Command
add_bulk_threshold_option
add_proxy_option
add_source_option
+ add_clear_sources_option
add_version_option
add_platform_option
@@ -58,8 +59,16 @@ class Gem::Commands::FetchCommand < Gem::Command
next
end
- path = Gem::RemoteFetcher.fetcher.download spec, source_uri
- FileUtils.mv path, File.basename(spec.cache_file)
+ file = "#{spec.full_name}.gem"
+ remote_path = URI.parse(source_uri) + "gems/#{file}"
+
+ fetch = Gem::RemoteFetcher.fetcher
+
+ gem = fetch.fetch_path remote_path.to_s
+
+ File.open file, "wb" do |f|
+ f.write gem
+ end
say "Downloaded #{spec.full_name}"
end