aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/resolver/composed_set.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/resolver/composed_set.rb')
-rw-r--r--lib/rubygems/resolver/composed_set.rb19
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