# class Gem::Commands::SourcesCommand

### Public Class Methods

new() click to toggle source
Calls superclass method `Gem::Command::new`

    # File lib/rubygems/commands/sources_command.rb, line 11
    def initialize
      require 'fileutils'

      super 'sources',
            'Manage the sources and cache file RubyGems uses to search for gems'

      add_option '-a', '--add SOURCE_URI', 'Add source' do |value, options|
        options[:add] = value
      end

      add_option '-l', '--list', 'List sources' do |value, options|
        options[:list] = value
      end

      add_option '-r', '--remove SOURCE_URI', 'Remove source' do |value, options|
        options[:remove] = value
      end

      add_option '-c', '--clear-all',
                 'Remove all sources (clear the cache)' do |value, options|
        options[:clear_all] = value
      end

      add_option '-u', '--update', 'Update source cache' do |value, options|
        options[:update] = value
      end

      add_proxy_option
    end

### Public Instance Methods

execute() click to toggle source

    # File lib/rubygems/commands/sources_command.rb, line 164
    def execute
      clear_all if options[:clear_all]

      source_uri = options[:add]
      add_source source_uri if source_uri

      source_uri = options[:remove]
      remove_source source_uri if source_uri

      update if options[:update]

      list if list?
    end