frozen_string_literal: false
A Resolver::Specification contains a subset of the information contained in a Gem::Specification. Only the information necessary for dependency resolution in the resolver is included.
- F
- I
- N
| [R] | dependencies | The dependencies of the gem for this specification |
| [R] | name | The name of the gem for this specification |
| [R] | platform | The platform this gem works on. |
| [R] | set | The set this specification came from. |
| [R] | source | The source for this specification |
| [R] | spec | The Gem::Specification for this Resolver::Specification. Implementers, note that install updates @spec, so be sure to cache the Gem::Specification in @spec when overriding. |
| [R] | version | The version of the gem for this specification. |
Sets default instance variables for the specification.
The name and version of the specification.
Unlike Gem::Specification#full_name, the platform is not included.
Installs this specification using the Gem::Installer options. The
install method yields a Gem::Installer
instance, which indicates the gem will be installed, or nil,
which indicates the gem is already installed.
After installation spec is updated to point to the just-installed specification.
# File lib/rubygems/resolver/specification.rb, line 84 def install options = {} require 'rubygems/installer' destination = options[:install_dir] || Gem.dir Gem.ensure_gem_subdirectories destination gem = source.download spec, destination installer = Gem::Installer.at gem, options yield installer if block_given? @spec = installer.install end