mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
9694bb8cac
* test/rubygems*: ditto. * common.mk (prelude): Updated for RubyGems 2.0 source rearrangement. * tool/change_maker.rb: Allow invalid UTF-8 characters in source files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
87 lines
1.2 KiB
Ruby
87 lines
1.2 KiB
Ruby
require 'rubygems/source'
|
|
|
|
class Gem::SourceList
|
|
def initialize
|
|
@sources = []
|
|
end
|
|
|
|
attr_reader :sources
|
|
|
|
def self.from(ary)
|
|
list = new
|
|
|
|
if ary
|
|
ary.each do |x|
|
|
list << x
|
|
end
|
|
end
|
|
|
|
return list
|
|
end
|
|
|
|
def initialize_copy(other)
|
|
@sources = @sources.dup
|
|
end
|
|
|
|
def <<(obj)
|
|
src = case obj
|
|
when URI
|
|
Gem::Source.new(obj)
|
|
when Gem::Source
|
|
obj
|
|
else
|
|
Gem::Source.new(URI.parse(obj))
|
|
end
|
|
|
|
@sources << src
|
|
src
|
|
end
|
|
|
|
def replace(other)
|
|
@sources.clear
|
|
|
|
other.each do |x|
|
|
self << x
|
|
end
|
|
|
|
self
|
|
end
|
|
|
|
def each
|
|
@sources.each { |s| yield s.uri.to_s }
|
|
end
|
|
|
|
def each_source(&b)
|
|
@sources.each(&b)
|
|
end
|
|
|
|
def ==(other)
|
|
to_a == other
|
|
end
|
|
|
|
def to_a
|
|
@sources.map { |x| x.uri.to_s }
|
|
end
|
|
|
|
alias_method :to_ary, :to_a
|
|
|
|
def first
|
|
@sources.first
|
|
end
|
|
|
|
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
|
|
|
|
def delete(uri)
|
|
if uri.kind_of? Gem::Source
|
|
@sources.delete uri
|
|
else
|
|
@sources.delete_if { |x| x.uri.to_s == uri.to_s }
|
|
end
|
|
end
|
|
end
|