Method: Gem::Commands::SourcesCommand#add_source

Defined in:
lib/rubygems/commands/sources_command.rb

#add_source(source_uri) ⇒ Object

:nodoc:



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/rubygems/commands/sources_command.rb', line 52

def add_source(source_uri) # :nodoc:
  check_rubygems_https source_uri

  source = Gem::Source.new source_uri

  check_typo_squatting(source)

  begin
    if Gem.sources.include? source
      say "source #{source_uri} already present in the cache"
    else
      source.load_specs :released
      Gem.sources << source
      Gem.configuration.write

      say "#{source_uri} added to sources"
    end
  rescue Gem::URI::Error, ArgumentError
    say "#{source_uri} is not a URI"
    terminate_interaction 1
  rescue Gem::RemoteFetcher::FetchError => e
    say "Error fetching #{Gem::Uri.redact(source.uri)}:\n\t#{e.message}"
    terminate_interaction 1
  end
end