In Files

  • rubygems/dependency_resolver/index_set.rb

Class/Module Index [+]

Quicksearch

Gem::DependencyResolver::IndexSet

The global rubygems pool represented via the traditional source index.

Public Class Methods

new() click to toggle source
 
               # File rubygems/dependency_resolver/index_set.rb, line 7
def initialize
  @f = Gem::SpecFetcher.fetcher

  @all = Hash.new { |h,k| h[k] = [] }

  list, = @f.available_specs :released

  list.each do |uri, specs|
    specs.each do |n|
      @all[n.name] << [uri, n]
    end
  end

  @specs = {}
end
            

Public Instance Methods

find_all(req) click to toggle source

Return an array of IndexSpecification objects matching DependencyRequest req.

 
               # File rubygems/dependency_resolver/index_set.rb, line 27
def find_all req
  res = []

  name = req.dependency.name

  @all[name].each do |uri, n|
    if req.dependency.match? n
      res << Gem::DependencyResolver::IndexSpecification.new(
        self, n.name, n.version, uri, n.platform)
    end
  end

  res
end
            
load_spec(name, ver, source) click to toggle source

Called from IndexSpecification to get a true Specification object.

 
               # File rubygems/dependency_resolver/index_set.rb, line 46
def load_spec name, ver, source
  key = "#{name}-#{ver}"
  @specs[key] ||= source.fetch_spec(Gem::NameTuple.new(name, ver))
end
            
prefetch(gems) click to toggle source

No prefetching needed since we load the whole index in initially.

 
               # File rubygems/dependency_resolver/index_set.rb, line 55
def prefetch gems
end