| Module | Gem::LocalRemoteOptions |
| In: |
lib/rubygems/local_remote_options.rb
|
Mixin methods for local and remote Gem::Command options.
Allows OptionParser to handle HTTP URIs.
# File lib/rubygems/local_remote_options.rb, line 18
18: def accept_uri_http
19: OptionParser.accept URI::HTTP do |value|
20: begin
21: uri = URI.parse value
22: rescue URI::InvalidURIError
23: raise OptionParser::InvalidArgument, value
24: end
25:
26: raise OptionParser::InvalidArgument, value unless uri.scheme == 'http'
27:
28: value
29: end
30: end
Add the —bulk-threshold option
# File lib/rubygems/local_remote_options.rb, line 60
60: def add_bulk_threshold_option
61: add_option("Local/Remote""Local/Remote", '-B', '--bulk-threshold COUNT',
62: "Threshold for switching to bulk",
63: "synchronization (default #{Gem.configuration.bulk_threshold})") do
64: |value, options|
65: Gem.configuration.bulk_threshold = value.to_i
66: end
67: end
Add local/remote options to the command line parser.
# File lib/rubygems/local_remote_options.rb, line 35
35: def add_local_remote_options
36: add_option("Local/Remote""Local/Remote", '-l', '--local',
37: 'Restrict operations to the LOCAL domain') do |value, options|
38: options[:domain] = :local
39: end
40:
41: add_option("Local/Remote""Local/Remote", '-r', '--remote',
42: 'Restrict operations to the REMOTE domain') do |value, options|
43: options[:domain] = :remote
44: end
45:
46: add_option("Local/Remote""Local/Remote", '-b', '--both',
47: 'Allow LOCAL and REMOTE operations') do |value, options|
48: options[:domain] = :both
49: end
50:
51: add_bulk_threshold_option
52: add_source_option
53: add_proxy_option
54: add_update_sources_option
55: end
Add the —http-proxy option
# File lib/rubygems/local_remote_options.rb, line 72
72: def add_proxy_option
73: accept_uri_http
74:
75: add_option("Local/Remote""Local/Remote", '-p', '--[no-]http-proxy [URL]', URI::HTTP,
76: 'Use HTTP proxy for remote operations') do |value, options|
77: options[:http_proxy] = (value == false) ? :no_proxy : value
78: Gem.configuration[:http_proxy] = options[:http_proxy]
79: end
80: end
Add the —source option
# File lib/rubygems/local_remote_options.rb, line 85
85: def add_source_option
86: accept_uri_http
87:
88: add_option("Local/Remote""Local/Remote", '--source URL', URI::HTTP,
89: 'Use URL as the remote source for gems') do |source, options|
90: source << '/' if source !~ /\/\z/
91:
92: if options[:added_source] then
93: Gem.sources << source
94: else
95: options[:added_source] = true
96: Gem.sources.replace [source]
97: end
98: end
99: end
Add the —source option
# File lib/rubygems/local_remote_options.rb, line 104
104: def add_update_sources_option
105:
106: add_option("Local/Remote""Local/Remote", '-u', '--[no-]update-sources',
107: 'Update local source cache') do |value, options|
108: Gem.configuration.update_sources = value
109: end
110: end