Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Mixin methods for local and remote Gem::Command options.
Allows OptionParser to handle HTTP URIs.
# File rubygems/local_remote_options.rb, line 18
def accept_uri_http
OptionParser.accept URI::HTTP do |value|
begin
uri = URI.parse value
rescue URI::InvalidURIError
raise OptionParser::InvalidArgument, value
end
unless ['http', 'https', 'file'].include?(uri.scheme)
raise OptionParser::InvalidArgument, value
end
value
end
end
Add the –bulk-threshold option
# File rubygems/local_remote_options.rb, line 63
def add_bulk_threshold_option
add_option(:"Local/Remote", '-B', '--bulk-threshold COUNT',
"Threshold for switching to bulk",
"synchronization (default #{Gem.configuration.bulk_threshold})") do
|value, options|
Gem.configuration.bulk_threshold = value.to_i
end
end
Add the –clear-sources option
# File rubygems/local_remote_options.rb, line 75
def add_clear_sources_option
add_option(:"Local/Remote", '--clear-sources',
'Clear the gem sources') do |value, options|
Gem.sources = nil
options[:sources_cleared] = true
end
end
Add local/remote options to the command line parser.
# File rubygems/local_remote_options.rb, line 37
def add_local_remote_options
add_option(:"Local/Remote", '-l', '--local',
'Restrict operations to the LOCAL domain') do |value, options|
options[:domain] = :local
end
add_option(:"Local/Remote", '-r', '--remote',
'Restrict operations to the REMOTE domain') do |value, options|
options[:domain] = :remote
end
add_option(:"Local/Remote", '-b', '--both',
'Allow LOCAL and REMOTE operations') do |value, options|
options[:domain] = :both
end
add_bulk_threshold_option
add_clear_sources_option
add_source_option
add_proxy_option
add_update_sources_option
end
Add the –http-proxy option
# File rubygems/local_remote_options.rb, line 87
def add_proxy_option
accept_uri_http
add_option(:"Local/Remote", '-p', '--[no-]http-proxy [URL]', URI::HTTP,
'Use HTTP proxy for remote operations') do |value, options|
options[:http_proxy] = (value == false) ? :no_proxy : value
Gem.configuration[:http_proxy] = options[:http_proxy]
end
end
Add the –source option
# File rubygems/local_remote_options.rb, line 100
def add_source_option
accept_uri_http
add_option(:"Local/Remote", '--source URL', URI::HTTP,
'Add URL as a remote source for gems') do |source, options|
source << '/' if source !~ /\/\z/
if options.delete :sources_cleared then
Gem.sources = [source]
else
Gem.sources << source unless Gem.sources.include?(source)
end
end
end
Add the –update-sources option
# File rubygems/local_remote_options.rb, line 119
def add_update_sources_option
add_option(:Deprecated, '-u', '--[no-]update-sources',
'Update local source cache') do |value, options|
Gem.configuration.update_sources = value
end
end
Is fetching of local and remote information enabled?
# File rubygems/local_remote_options.rb, line 129
def both?
options[:domain] == :both
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.