Class: Gem::Resolver::GitSet (Ruby 2.3.4)

In Files

  • rubygems/resolver/git_set.rb

Class/Module Index [+]

Quicksearch

Gem::Resolver::GitSet

frozen_string_literal: true

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)

Finds all git gems matching req

 
               # File rubygems/resolver/git_set.rb, line 80
def find_all req
  prefetch nil

  specs.values.select do |spec|
    req.match? spec
  end
end
            
prefetch(reqs)

Prefetches specifications from the git repositories in this set.

 
               # File rubygems/resolver/git_set.rb, line 91
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