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
# 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