类 Gem::Resolver::GitSet

GitSet 代表来自 git 仓库的 gem。

这用于 gem 依赖文件支持。

示例

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

属性

root_dir[读写]

此集合中 git gem 的根目录。这通常是 Gem.dir,常规 gem 的安装目录。

公共实例方法

find_all(req) 点击切换源码

查找所有匹配 req 的 git gem

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

  specs.values.select do |spec|
    req.match? spec
  end
end
prefetch(reqs) 点击切换源码

从此集合中的 git 仓库预取规范。

# File 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