1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/rubygems/resolver/source_set.rb
hsbt a21d403f21 * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
It supports to enable frozen string literal and add `--norc` option for
  disable to `.gemrc` configuration.
  See 2.5.2 release notes for other fixes and enhancements.
  a8aa3bac72/History.txt (L3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-01 12:43:26 +00:00

48 lines
898 B
Ruby

##
# The SourceSet chooses the best available method to query a remote index.
#
# Kind off like BestSet but filters the sources for gems
class Gem::Resolver::SourceSet < Gem::Resolver::Set
##
# Creates a SourceSet for the given +sources+ or Gem::sources if none are
# specified. +sources+ must be a Gem::SourceList.
def initialize
super()
@links = {}
@sets = {}
end
def find_all req # :nodoc:
if set = get_set(req.dependency.name)
set.find_all req
else
[]
end
end
# potentially no-op
def prefetch reqs # :nodoc:
reqs.each do |req|
if set = get_set(req.dependency.name)
set.prefetch reqs
end
end
end
def add_source_gem name, source
@links[name] = source
end
private
def get_set(name)
link = @links[name]
@sets[link] ||= Gem::Source.new(link).dependency_resolver_set if link
end
end