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