class Gem::Resolver::Specification
Resolver::Specification 包含 Gem::Specification
中信息的子集。仅包含解析器中依赖项解析所需的信息。
属性
dependencies[R]
此规范的 gem 的依赖项
name[R]
此规范的 gem 的名称
platform[R]
此 gem 运行的平台。
required_ruby_version[R]
此规范的 required_ruby_version
约束。
required_rubygems_version[R]
此规范的 required_ruby_version
约束。
set[R]
此规范来自的集合。
source[R]
此规范的来源
spec[R]
此 Resolver::Specification 的 Gem::Specification
。
实现者请注意,install
会更新 @spec,因此请在覆盖时确保在 @spec 中缓存 Gem::Specification
。
version[R]
此规范的 gem 的版本。
公共类方法
new() 点击以切换源代码
设置规范的默认实例变量。
# File rubygems/resolver/specification.rb, line 60 def initialize @dependencies = nil @name = nil @platform = nil @set = nil @source = nil @version = nil @required_ruby_version = Gem::Requirement.default @required_rubygems_version = Gem::Requirement.default end
公共实例方法
download(options) 点击以切换源代码
# File rubygems/resolver/specification.rb, line 108 def download(options) dir = options[:install_dir] || Gem.dir Gem.ensure_gem_subdirectories dir source.download spec, dir end
full_name() 点击以切换源代码
规范的名称和版本。
与 Gem::Specification#full_name
不同,不包含平台。
# File rubygems/resolver/specification.rb, line 83 def full_name "#{@name}-#{@version}" end
install(options = {}) { |installer| ... } 点击以切换源代码
使用 Gem::Installer
options
安装此规范。 install 方法会生成一个 Gem::Installer
实例,表示 gem 将被安装,或者 nil
,表示 gem 已安装。
安装后,spec
将更新为指向刚刚安装的规范。
# File rubygems/resolver/specification.rb, line 96 def install(options = {}) require_relative "../installer" gem = download options installer = Gem::Installer.at gem, options yield installer if block_given? @spec = installer.install end
installable_platform?() 点击以切换源代码
如果此规范可在此平台上安装,则返回 true。
# File rubygems/resolver/specification.rb, line 119 def installable_platform? Gem::Platform.match_spec? spec end