# class Gem::Resolver::ComposedSet

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.

### Public Class Methods

new(*sets) click to toggle source

Creates a new `ComposedSet` containing `sets`. Use `Gem::Resolver::compose_sets` instead.

Calls superclass method `BasicObject::new`

    # File lib/rubygems/resolver/composed_set.rb, line 18
    def initialize(*sets)
      super()

      @sets = sets
    end

### Public Instance Methods

errors() click to toggle source

    # File lib/rubygems/resolver/composed_set.rb, line 45
    def errors
      @errors + @sets.map {|set| set.errors }.flatten
    end

find_all(req) click to toggle source

Finds all specs matching `req` in all sets.

    # File lib/rubygems/resolver/composed_set.rb, line 52
    def find_all(req)
      @sets.map do |s|
        s.find_all req
      end.flatten
    end

prefetch(reqs) click to toggle source

Prefetches `reqs` in all sets.

    # File lib/rubygems/resolver/composed_set.rb, line 61
    def prefetch(reqs)
      @sets.each {|s| s.prefetch(reqs) }
    end

prerelease=(allow_prerelease) click to toggle source

When `allow_prerelease` is set to `true` prereleases gems are allowed to match dependencies.

Calls superclass method

    # File lib/rubygems/resolver/composed_set.rb, line 28
    def prerelease=(allow_prerelease)
      super

      sets.each do |set|
        set.prerelease = allow_prerelease
      end
    end

remote=(remote) click to toggle source

Sets the remote network access for all composed sets.

Calls superclass method

    # File lib/rubygems/resolver/composed_set.rb, line 39
    def remote=(remote)
      super

      @sets.each {|set| set.remote = remote }
    end