Sha256: 0faa377fc3aa7d3f85b1b047b5c50e76570f2660e928e3e3f42bfd66c5afaa49

Contents?: true

Size: 931 Bytes

Versions: 32

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

##
# 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

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
rubygems-update-3.6.3 lib/rubygems/resolver/source_set.rb
rubygems-update-3.6.2 lib/rubygems/resolver/source_set.rb
rubygems-update-3.6.1 lib/rubygems/resolver/source_set.rb
rubygems-update-3.6.0 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.23 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.22 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.21 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.20 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.19 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.18 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.17 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.16 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.15 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.14 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.13 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.12 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.10 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.9 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.8 lib/rubygems/resolver/source_set.rb
rubygems-update-3.5.7 lib/rubygems/resolver/source_set.rb