Sha256: 143a1b6a7b13fcee57cea4511b28907f07be5c021a9b12007ec796a9dd35c1d4

Contents?: true

Size: 902 Bytes

Versions: 21

Compression:

Stored size: 902 Bytes

Contents

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

21 entries across 21 versions & 1 rubygems

Version Path
rubygems-update-3.1.6 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.5 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.9 lib/rubygems/resolver/source_set.rb
rubygems-update-3.2.0.rc.1 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.4 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.3 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.8 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.7 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.2 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.1 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.0 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.0.pre3 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.0.pre2 lib/rubygems/resolver/source_set.rb
rubygems-update-3.1.0.pre1 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.6 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.5 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.4 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.3 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.2 lib/rubygems/resolver/source_set.rb
rubygems-update-3.0.1 lib/rubygems/resolver/source_set.rb