class Gem::DependencyResolver::IndexSet
The global rubygems pool represented via the traditional source index.
Public Class Methods
new()
click to toggle source
# File lib/rubygems/dependency_resolver.rb, line 192 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 lib/rubygems/dependency_resolver.rb, line 210 def find_all(req) res = [] name = req.dependency.name @all[name].each do |uri, n| if req.dependency.match? n res << 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 lib/rubygems/dependency_resolver.rb, line 234 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 lib/rubygems/dependency_resolver.rb, line 228 def prefetch(gems) end