diff options
Diffstat (limited to 'lib/rubygems/resolver/composed_set.rb')
-rw-r--r-- | lib/rubygems/resolver/composed_set.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/rubygems/resolver/composed_set.rb b/lib/rubygems/resolver/composed_set.rb index e4aa15e4d0..702bd9ccfc 100644 --- a/lib/rubygems/resolver/composed_set.rb +++ b/lib/rubygems/resolver/composed_set.rb @@ -1,17 +1,36 @@ +## +# A ComposedSet allows multiple sets to be queried like a single set. +# +# To create a composed set with any number of sets use: +# +# Gem::Resolver.compose_sets set1, set2 +# +# This method will eliminate nesting of composed sets. + class Gem::Resolver::ComposedSet < Gem::Resolver::Set attr_reader :sets # :nodoc: + ## + # Creates a new ComposedSet containing +sets+. Use + # Gem::Resolver::compose_sets instead. + def initialize *sets @sets = sets end + ## + # Finds all specs matching +req+ in all sets. + def find_all req res = [] @sets.each { |s| res += s.find_all(req) } res end + ## + # Prefetches +reqs+ in all sets. + def prefetch reqs @sets.each { |s| s.prefetch(reqs) } end |