class Gem::Resolver::InstallerSet

A set of gems for installation sourced from remote sources and local .gem files

Public Class Methods

new(domain) click to toggle source

Creates a new InstallerSet that will look for gems in domain.

Calls superclass method BasicObject.new
# File lib/rubygems/resolver/installer_set.rb, line 26
def initialize domain
 super()
 @domain = domain
 @remote = consider_remote?
 @f = Gem::SpecFetcher.fetcher
 @always_install = []
 @ignore_dependencies = false
 @ignore_installed = false
 @remote_set = Gem::Resolver::BestSet.new
 @specs = {}
end

Public Instance Methods

find_all(req) click to toggle source

Returns an array of IndexSpecification objects matching DependencyRequest req.

# File lib/rubygems/resolver/installer_set.rb, line 59
def find_all req
 res = []
 dep = req.dependency
 return res if @ignore_dependencies and
 @always_install.none? { |spec| dep.matches_spec? spec }
 name = dep.name
 dep.matching_specs.each do |gemspec|
 next if @always_install.include? gemspec
 res << Gem::Resolver::InstalledSpecification.new(self, gemspec)
 end unless @ignore_installed
 if consider_local? then
 local_source = Gem::Source::Local.new
 if spec = local_source.find_gem(name, dep.requirement) then
 res << Gem::Resolver::IndexSpecification.new(
 self, spec.name, spec.version, local_source, spec.platform)
 end
 end
 res.concat @remote_set.find_all req if consider_remote?
 res
end