Class: Gem::SourceList
- Inherits:
-
Object
- Object
- Gem::SourceList
- Includes:
- Enumerable
- Defined in:
- lib/rubygems/source_list.rb
Overview
The SourceList represents the sources rubygems has been configured to use. A source may be created from an array of sources:
Gem::SourceList.from %w[https://rubygems.example https://internal.example]
Or by adding them:
sources = Gem::SourceList.new
sources << 'https://rubygems.example'
The most common way to get a SourceList is Gem.sources.
Instance Attribute Summary collapse
-
#sources ⇒ Object
readonly
The sources in this list.
Class Method Summary collapse
-
.from(ary) ⇒ Object
Creates a new SourceList from an array of sources.
Instance Method Summary collapse
-
#<<(obj) ⇒ Object
Appends
obj
to the source list which may be a Gem::Source, URI or URI String. -
#==(other) ⇒ Object
:nodoc:.
-
#clear ⇒ Object
Removes all sources from the SourceList.
-
#delete(source) ⇒ Object
Deletes
source
from the source list which may be a Gem::Source or a URI. -
#each ⇒ Object
Yields each source URI in the list.
-
#each_source(&b) ⇒ Object
Yields each source in the list.
-
#empty? ⇒ Boolean
Returns true if there are no sources in this SourceList.
-
#first ⇒ Object
Returns the first source in the list.
-
#include?(other) ⇒ Boolean
Returns true if this source list includes
other
which may be a Gem::Source or a source URI. -
#initialize ⇒ SourceList
constructor
Creates a new SourceList.
-
#initialize_copy(other) ⇒ Object
:nodoc:.
-
#replace(other) ⇒ Object
Replaces this SourceList with the sources in
other
See #<< for acceptable items inother
. -
#to_a ⇒ Object
(also: #to_ary)
Returns an Array of source URI Strings.
Constructor Details
#initialize ⇒ SourceList
Creates a new SourceList
24 25 26 |
# File 'lib/rubygems/source_list.rb', line 24 def initialize @sources = [] end |
Instance Attribute Details
#sources ⇒ Object (readonly)
The sources in this list
31 32 33 |
# File 'lib/rubygems/source_list.rb', line 31 def sources @sources end |
Class Method Details
.from(ary) ⇒ Object
Creates a new SourceList from an array of sources.
36 37 38 39 40 41 42 |
# File 'lib/rubygems/source_list.rb', line 36 def self.from(ary) list = new list.replace ary return list end |
Instance Method Details
#<<(obj) ⇒ Object
Appends obj
to the source list which may be a Gem::Source, URI or URI String.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/rubygems/source_list.rb', line 52 def <<(obj) require "uri" src = case obj when URI Gem::Source.new(obj) when Gem::Source obj else Gem::Source.new(URI.parse(obj)) end @sources << src unless @sources.include?(src) src end |
#==(other) ⇒ Object
:nodoc:
110 111 112 |
# File 'lib/rubygems/source_list.rb', line 110 def ==(other) # :nodoc: to_a == other end |
#clear ⇒ Object
Removes all sources from the SourceList.
85 86 87 |
# File 'lib/rubygems/source_list.rb', line 85 def clear @sources.clear end |
#delete(source) ⇒ Object
Deletes source
from the source list which may be a Gem::Source or a URI.
145 146 147 148 149 150 151 |
# File 'lib/rubygems/source_list.rb', line 145 def delete(source) if source.kind_of? Gem::Source @sources.delete source else @sources.delete_if { |x| x.uri.to_s == source.to_s } end end |
#each ⇒ Object
Yields each source URI in the list.
92 93 94 |
# File 'lib/rubygems/source_list.rb', line 92 def each @sources.each { |s| yield s.uri.to_s } end |
#each_source(&b) ⇒ Object
Yields each source in the list.
99 100 101 |
# File 'lib/rubygems/source_list.rb', line 99 def each_source(&b) @sources.each(&b) end |
#empty? ⇒ Boolean
Returns true if there are no sources in this SourceList.
106 107 108 |
# File 'lib/rubygems/source_list.rb', line 106 def empty? @sources.empty? end |
#first ⇒ Object
Returns the first source in the list.
126 127 128 |
# File 'lib/rubygems/source_list.rb', line 126 def first @sources.first end |
#include?(other) ⇒ Boolean
Returns true if this source list includes other
which may be a Gem::Source or a source URI.
134 135 136 137 138 139 140 |
# File 'lib/rubygems/source_list.rb', line 134 def include?(other) if other.kind_of? Gem::Source @sources.include? other else @sources.find { |x| x.uri.to_s == other.to_s } end end |
#initialize_copy(other) ⇒ Object
:nodoc:
44 45 46 |
# File 'lib/rubygems/source_list.rb', line 44 def initialize_copy(other) # :nodoc: @sources = @sources.dup end |
#replace(other) ⇒ Object
Replaces this SourceList with the sources in other
See #<< for acceptable items in other
.
72 73 74 75 76 77 78 79 80 |
# File 'lib/rubygems/source_list.rb', line 72 def replace(other) clear other.each do |x| self << x end self end |
#to_a ⇒ Object Also known as: to_ary
Returns an Array of source URI Strings.
117 118 119 |
# File 'lib/rubygems/source_list.rb', line 117 def to_a @sources.map { |x| x.uri.to_s } end |