class Gem::Resolver::GitSet

A GitSet represents gems that are sourced from git repositories.

This is used for gem dependency file support.

Example:

set = Gem::Resolver::GitSet.new
set.add_git_gem 'rake', 'git://example/rake.git', tag: 'rake-10.1.0'

Attributes

root_dir[RW]

The root directory for git gems in this set. This is usually Gem.dir, the installation directory for regular gems.

Public Instance Methods

find_all(req) click to toggle source

Finds all git gems matching req

# File lib/rubygems/resolver/git_set.rb, line 79
def find_all req
 prefetch nil
 specs.values.select do |spec|
 req.matches_spec? spec
 end
end
prefetch(reqs) click to toggle source

Prefetches specifications from the git repositories in this set.

# File lib/rubygems/resolver/git_set.rb, line 90
def prefetch reqs
 return unless @specs.empty?
 @repositories.each do |name, (repository, reference)|
 source = Gem::Source::Git.new name, repository, reference
 source.root_dir = @root_dir
 source.remote = @remote
 source.specs.each do |spec|
 git_spec = Gem::Resolver::GitSpecification.new self, spec, source
 @specs[spec.name] = git_spec
 end
 end
end