aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/local_remote_options.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/local_remote_options.rb')
-rw-r--r--lib/rubygems/local_remote_options.rb29
1 files changed, 24 insertions, 5 deletions
diff --git a/lib/rubygems/local_remote_options.rb b/lib/rubygems/local_remote_options.rb
index e238c7292c..b752423845 100644
--- a/lib/rubygems/local_remote_options.rb
+++ b/lib/rubygems/local_remote_options.rb
@@ -1,3 +1,9 @@
+######################################################################
+# This file is imported from the rubygems project.
+# DO NOT make modifications in this repo. They _will_ be reverted!
+# File a patch instead and assign it to Ryan Davis or Eric Hodel.
+######################################################################
+
#--
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
# All rights reserved.
@@ -51,6 +57,7 @@ module Gem::LocalRemoteOptions
end
add_bulk_threshold_option
+ add_clear_sources_option
add_source_option
add_proxy_option
add_update_sources_option
@@ -69,6 +76,18 @@ module Gem::LocalRemoteOptions
end
##
+ # Add the --clear-sources option
+
+ def add_clear_sources_option
+ add_option(:"Local/Remote", '--clear-sources',
+ 'Clear the gem sources') do |value, options|
+
+ Gem.sources.clear
+ options[:sources_cleared] = true
+ end
+ end
+
+ ##
# Add the --http-proxy option
def add_proxy_option
@@ -88,14 +107,14 @@ module Gem::LocalRemoteOptions
accept_uri_http
add_option(:"Local/Remote", '--source URL', URI::HTTP,
- 'Use URL as the remote source for gems') do |source, options|
+ 'Add URL as a remote source for gems') do |source, options|
+
source << '/' if source !~ /\/\z/
- if options[:added_source] then
- Gem.sources << source unless Gem.sources.include?(source)
+ if options.delete :sources_cleared then
+ Gem.sources = [source]
else
- options[:added_source] = true
- Gem.sources.replace [source]
+ Gem.sources << source unless Gem.sources.include?(source)
end
end
end