Class: Gem::Resolver::IndexSet
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           Set | |
| Instance Chain: 
          self,
           Set | |
| Inherits: | Gem::Resolver::Set 
 | 
| Defined in: | lib/rubygems/resolver/index_set.rb | 
Overview
The global rubygems pool represented via the traditional source index.
Class Method Summary
Instance Attribute Summary
Set - Inherited
| #errors | Errors encountered when resolving gems. | 
| #prerelease | When true, allows matching of requests to prerelease gems. | 
| #remote | 
 | 
| #remote? | When true, this set is allowed to access the network when looking up specifications or dependencies. | 
Instance Method Summary
- 
    
      #find_all(req)  
    
    Return an array of IndexSpecificationobjects matchingDependencyRequestreq.
- #pretty_print(q) Internal use only
Set - Inherited
Constructor Details
    .new(source = nil)  ⇒ IndexSet 
  
  
    This method is for internal use only.
  
# File 'lib/rubygems/resolver/index_set.rb', line 8
def initialize(source = nil) # :nodoc: super() @f = if source sources = Gem::SourceList.from [source] Gem::SpecFetcher.new sources else Gem::SpecFetcher.fetcher end @all = Hash.new { |h,k| h[k] = [] } list, errors = @f.available_specs :complete @errors.concat errors list.each do |uri, specs| specs.each do |n| @all[n.name] << [uri, n] end end @specs = {} end
Instance Method Details
#find_all(req)
Return an array of IndexSpecification objects matching DependencyRequest req.
# File 'lib/rubygems/resolver/index_set.rb', line 39
def find_all(req) res = [] return res unless @remote name = req.dependency.name @all[name].each do |uri, n| if req.match? n, @prerelease res << Gem::Resolver::IndexSpecification.new( self, n.name, n.version, uri, n.platform) end end res end
#pretty_print(q)
    This method is for internal use only.
  
  [ GitHub ]
# File 'lib/rubygems/resolver/index_set.rb', line 56
def pretty_print(q) # :nodoc: q.group 2, '[IndexSet', ']' do q.breakable q.text 'sources:' q.breakable q.pp @f.sources q.breakable q.text 'specs:' q.breakable names = @all.values.map do |tuples| tuples.map do |_, tuple| tuple.full_name end end.flatten q.seplist names do |name| q.text name end end end