Class: Gem::Resolver::IndexSet
- Defined in:
- lib/rubygems/resolver/index_set.rb
Overview
The global rubygems pool represented via the traditional source index.
Instance Attribute Summary
Attributes inherited from Set
Instance Method Summary collapse
-
#find_all(req) ⇒ Object
Return an array of IndexSpecification objects matching DependencyRequest
req
. -
#initialize(source = nil) ⇒ IndexSet
constructor
:nodoc:.
-
#pretty_print(q) ⇒ Object
:nodoc:.
Methods inherited from Set
Constructor Details
#initialize(source = nil) ⇒ IndexSet
:nodoc:
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rubygems/resolver/index_set.rb', line 7 def initialize source = nil # :nodoc: super() @f = if source then sources = Gem::SourceList.from [source] Gem::SpecFetcher.new sources else Gem::SpecFetcher.fetcher end @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 |
Instance Method Details
#find_all(req) ⇒ Object
Return an array of IndexSpecification objects matching DependencyRequest req
.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rubygems/resolver/index_set.rb', line 36 def find_all req res = [] return res unless @remote name = req.dependency.name @all[name].each do |uri, n| if req.dependency.match? n then res << Gem::Resolver::IndexSpecification.new( self, n.name, n.version, uri, n.platform) end end res end |
#pretty_print(q) ⇒ Object
:nodoc:
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/rubygems/resolver/index_set.rb', line 53 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 |