blob: e2307f6e026bde688de511678cbe4a418a063a64 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# frozen_string_literal: true
##
# The BestSet chooses the best available method to query a remote index.
#
# It combines IndexSet and APISet
class Gem::Resolver::BestSet < Gem::Resolver::ComposedSet
##
# Creates a BestSet for the given +sources+ or Gem::sources if none are
# specified. +sources+ must be a Gem::SourceList.
def initialize(sources = Gem.sources)
super()
@sources = sources
end
##
# Picks which sets to use for the configured sources.
def pick_sets # :nodoc:
@sources.each_source do |source|
@sets << source.dependency_resolver_set
end
end
def find_all(req) # :nodoc:
pick_sets if @remote && @sets.empty?
super
end
def prefetch(reqs) # :nodoc:
pick_sets if @remote && @sets.empty?
super
end
def pretty_print(q) # :nodoc:
q.group 2, "[BestSet", "]" do
q.breakable
q.text "sets:"
q.breakable
q.pp @sets
end
end
end
|