class Gem::Source::Git
一个用于 gem 依赖文件中的 git gem。
示例
source = Gem::Source::Git.new 'rake', 'git@example:rake.git', 'rake-10.1.0', false source.specs
属性
name[R]
此 git gem 创建的 gem 的名称。
need_submodules[R]
此存储库是否也需要检出子模块?
reference[R]
用于检出此 git gem 的提交引用。
remote[RW]
当为 false 时,不会更新此存储库的缓存。
repository[R]
此 gem 的来源 git 存储库。
root_dir[RW]
用于缓存和 git gem 安装的目录
公共类方法
new(name, repository, reference, submodules = false) 点击以切换源代码
为从给定 reference
处加载的 repository
中的 gem 创建新的 git gem 源。 name
仅用于将存储库追溯到 gem 依赖文件,它没有真正的意义,因为一个 git 存储库可能包含多个 gem。如果 submodules
为 true,则在安装 gem 时会检出子模块。
# File rubygems/source/git.rb, line 51 def initialize(name, repository, reference, submodules = false) require_relative "../uri" @uri = Gem::Uri.parse(repository) @name = name @repository = repository @reference = reference || "HEAD" @need_submodules = submodules @remote = true @root_dir = Gem.dir end
公共实例方法
<=>(other) 点击以切换源代码
# File rubygems/source/git.rb, line 63 def <=>(other) case other when Gem::Source::Git then 0 when Gem::Source::Vendor, Gem::Source::Lock then -1 when Gem::Source then 1 end end
git_command() 点击以切换源代码
# File rubygems/source/git.rb, line 83 def git_command ENV.fetch("git", "git") end
specs() 点击以切换源代码
加载存储库中的所有 gemspec
# File rubygems/source/git.rb, line 201 def specs checkout return [] unless install_dir Dir.chdir install_dir do Dir["{,*,*/*}.gemspec"].filter_map do |spec_file| directory = File.dirname spec_file file = File.basename spec_file Dir.chdir directory do spec = Gem::Specification.load file if spec spec.base_dir = base_dir spec.extension_dir = File.join base_dir, "extensions", Gem::Platform.local.to_s, Gem.extension_api_version, "#{name}-#{dir_shortref}" spec.full_gem_path = File.dirname spec.loaded_from if spec end spec end end end end