A set of gems for installation sourced from remote sources and local .gem files
Creates a new InstallerSet that will look
for gems in domain
.
# File rubygems/resolver/installer_set.rb, line 26 def initialize domain @domain = domain @f = Gem::SpecFetcher.fetcher @all = Hash.new { |h,k| h[k] = [] } @always_install = [] @ignore_dependencies = false @ignore_installed = false @loaded_remote_specs = [] @specs = {} end
Returns an array of IndexSpecification objects matching DependencyRequest
req
.
# File rubygems/resolver/installer_set.rb, line 57 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 if consider_remote? then load_remote_specs dep @all[name].each do |remote_source, n| if dep.match? n then res << Gem::Resolver::IndexSpecification.new( self, n.name, n.version, remote_source, n.platform) end end end res end