Extended maintenance of Ruby versions 1.8.7 and 1.9.2 will end on July 31, 2014. Read more

In Files

  • rubygems/local_remote_options.rb

Class/Module Index [+]

Quicksearch

Gem::LocalRemoteOptions

Mixin methods for local and remote Gem::Command options.

Public Instance Methods

accept_uri_http() click to toggle source

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_bulk_threshold_option() click to toggle source

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() click to toggle source

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_proxy_option() click to toggle source

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_source_option() click to toggle source

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_update_sources_option() click to toggle source

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
            
both?() click to toggle source

Is fetching of local and remote information enabled?

 
               # File rubygems/local_remote_options.rb, line 116
def both?
  options[:domain] == :both
end
            
local?() click to toggle source

Is local fetching enabled?

 
               # File rubygems/local_remote_options.rb, line 123
def local?
  options[:domain] == :local || options[:domain] == :both
end
            
remote?() click to toggle source

Is remote fetching enabled?

 
               # File rubygems/local_remote_options.rb, line 130
def remote?
  options[:domain] == :remote || 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.

blog comments powered by Disqus