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 62
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 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_source_option
add_proxy_option
add_update_sources_option
end
Add the –http-proxy option
# File rubygems/local_remote_options.rb, line 74
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 87
def add_source_option
accept_uri_http
add_option(:"Local/Remote", '--source URL', URI::HTTP,
'Use URL as the remote source for gems') do |source, options|
source << '/' if source !~ /\/\z/
if options[:added_source] then
Gem.sources << source unless Gem.sources.include?(source)
else
options[:added_source] = true
Gem.sources.replace [source]
end
end
end
Add the –update-sources option
# File rubygems/local_remote_options.rb, line 106
def add_update_sources_option
add_option(:"Local/Remote", '-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 116
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 see Improve the docs, or visit Documenting-ruby.org.