Class: Gem::Resolver::Specification
- Inherits:
-
Object
- Object
- Gem::Resolver::Specification
- Defined in:
- lib/rubygems/resolver/specification.rb
Overview
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.
Direct Known Subclasses
APISpecification, IndexSpecification, LockSpecification, SpecSpecification
Instance Attribute Summary collapse
-
#dependencies ⇒ Object
readonly
The dependencies of the gem for this specification.
-
#name ⇒ Object
readonly
The name of the gem for this specification.
-
#platform ⇒ Object
readonly
The platform this gem works on.
-
#set ⇒ Object
readonly
The set this specification came from.
-
#source ⇒ Object
readonly
The source for this specification.
-
#spec ⇒ Object
readonly
The Gem::Specification for this Resolver::Specification.
-
#version ⇒ Object
readonly
The version of the gem for this specification.
Instance Method Summary collapse
- #download(options) ⇒ Object
-
#fetch_development_dependencies ⇒ Object
Fetches development dependencies if the source does not provide them by default (see APISpecification).
-
#full_name ⇒ Object
The name and version of the specification.
-
#initialize ⇒ Specification
constructor
Sets default instance variables for the specification.
-
#install(options = {}) {|installer| ... } ⇒ Object
Installs this specification using the Gem::Installer
options
. -
#installable_platform? ⇒ Boolean
Returns true if this specification is installable on this platform.
-
#local? ⇒ Boolean
:nodoc:.
Constructor Details
#initialize ⇒ Specification
Sets default instance variables for the specification.
50 51 52 53 54 55 56 57 |
# File 'lib/rubygems/resolver/specification.rb', line 50 def initialize @dependencies = nil @name = nil @platform = nil @set = nil @source = nil @version = nil end |
Instance Attribute Details
#dependencies ⇒ Object (readonly)
The dependencies of the gem for this specification
12 13 14 |
# File 'lib/rubygems/resolver/specification.rb', line 12 def dependencies @dependencies end |
#name ⇒ Object (readonly)
The name of the gem for this specification
17 18 19 |
# File 'lib/rubygems/resolver/specification.rb', line 17 def name @name end |
#platform ⇒ Object (readonly)
The platform this gem works on.
22 23 24 |
# File 'lib/rubygems/resolver/specification.rb', line 22 def platform @platform end |
#set ⇒ Object (readonly)
The set this specification came from.
27 28 29 |
# File 'lib/rubygems/resolver/specification.rb', line 27 def set @set end |
#source ⇒ Object (readonly)
The source for this specification
32 33 34 |
# File 'lib/rubygems/resolver/specification.rb', line 32 def source @source end |
#spec ⇒ Object (readonly)
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.
40 41 42 |
# File 'lib/rubygems/resolver/specification.rb', line 40 def spec @spec end |
#version ⇒ Object (readonly)
The version of the gem for this specification.
45 46 47 |
# File 'lib/rubygems/resolver/specification.rb', line 45 def version @version end |
Instance Method Details
#download(options) ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/rubygems/resolver/specification.rb', line 96 def download() dir = [:install_dir] || Gem.dir Gem.ensure_gem_subdirectories dir source.download spec, dir end |
#fetch_development_dependencies ⇒ Object
Fetches development dependencies if the source does not provide them by default (see APISpecification).
63 64 |
# File 'lib/rubygems/resolver/specification.rb', line 63 def fetch_development_dependencies # :nodoc: end |
#full_name ⇒ Object
The name and version of the specification.
Unlike Gem::Specification#full_name, the platform is not included.
71 72 73 |
# File 'lib/rubygems/resolver/specification.rb', line 71 def full_name "#{@name}-#{@version}" end |
#install(options = {}) {|installer| ... } ⇒ Object
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.
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/rubygems/resolver/specification.rb', line 84 def install( = {}) require 'rubygems/installer' gem = download installer = Gem::Installer.at gem, yield installer if block_given? @spec = installer.install end |
#installable_platform? ⇒ Boolean
Returns true if this specification is installable on this platform.
107 108 109 |
# File 'lib/rubygems/resolver/specification.rb', line 107 def installable_platform? Gem::Platform.match spec.platform end |
#local? ⇒ Boolean
:nodoc:
111 112 113 |
# File 'lib/rubygems/resolver/specification.rb', line 111 def local? # :nodoc: false end |