class Gem::Resolver::GitSet - Documentation for Ruby 4.0
Description: class Gem::Resolver::GitSet: A GitSet represents gems that are sourced from git repositories. This is used for gem dependency file support.
Keywords: ruby,class,Gem::Resolver::GitSet

🔍

No recent searches

# 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)
Source

    # File lib/rubygems/resolver/git_set.rb, line 79
    def find_all(req)
      prefetch nil

      specs.values.select do |spec|
        req.match? spec
      end
    end

Finds all git gems matching `req`

prefetch (reqs)
Source

    # 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

Prefetches specifications from the git repositories in this set.