Class: Gem::Resolver::ActivationRequest
- Inherits:
-
Object
- Object
- Gem::Resolver::ActivationRequest
- Defined in:
- lib/rubygems/resolver/activation_request.rb
Overview
Specifies a Specification object that should be activated. Also contains a dependency that was used to introduce this activation.
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
The parent request for this activation request.
-
#spec ⇒ Object
readonly
The specification to be activated.
Instance Method Summary collapse
-
#==(other) ⇒ Object
:nodoc:.
-
#development? ⇒ Boolean
Is this activation request for a development dependency?.
-
#download(path) ⇒ Object
Downloads a gem at
path
and returns the file path. - #eql?(other) ⇒ Boolean
-
#full_name ⇒ Object
(also: #to_s)
The full name of the specification to be activated.
-
#full_spec ⇒ Object
The Gem::Specification for this activation request.
- #hash ⇒ Object
-
#initialize(spec, request) ⇒ ActivationRequest
constructor
Creates a new ActivationRequest that will activate
spec
. -
#inspect ⇒ Object
:nodoc:.
-
#installed? ⇒ Boolean
True if the requested gem has already been installed.
-
#name ⇒ Object
The name of this activation request’s specification.
-
#parent ⇒ Object
Return the ActivationRequest that contained the dependency that we were activated for.
-
#platform ⇒ Object
The platform of this activation request’s specification.
-
#pretty_print(q) ⇒ Object
:nodoc:.
-
#version ⇒ Object
The version of this activation request’s specification.
Constructor Details
#initialize(spec, request) ⇒ ActivationRequest
Creates a new ActivationRequest that will activate spec
. The parent request
is used to provide diagnostics in case of conflicts.
21 22 23 24 |
# File 'lib/rubygems/resolver/activation_request.rb', line 21 def initialize(spec, request) @spec = spec @request = request end |
Instance Attribute Details
#request ⇒ Object (readonly)
The parent request for this activation request.
10 11 12 |
# File 'lib/rubygems/resolver/activation_request.rb', line 10 def request @request end |
#spec ⇒ Object (readonly)
The specification to be activated.
15 16 17 |
# File 'lib/rubygems/resolver/activation_request.rb', line 15 def spec @spec end |
Instance Method Details
#==(other) ⇒ Object
:nodoc:
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rubygems/resolver/activation_request.rb', line 26 def ==(other) # :nodoc: case other when Gem::Specification @spec == other when Gem::Resolver::ActivationRequest @spec == other.spec else false end end |
#development? ⇒ Boolean
Is this activation request for a development dependency?
48 49 50 |
# File 'lib/rubygems/resolver/activation_request.rb', line 48 def development? @request.development? end |
#download(path) ⇒ Object
Downloads a gem at path
and returns the file path.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/rubygems/resolver/activation_request.rb', line 55 def download(path) Gem.ensure_gem_subdirectories path if @spec.respond_to? :sources exception = nil path = @spec.sources.find do |source| begin source.download full_spec, path rescue exception end end return path if path raise exception if exception elsif @spec.respond_to? :source source = @spec.source source.download full_spec, path else source = Gem.sources.first source.download full_spec, path end end |
#eql?(other) ⇒ Boolean
37 38 39 |
# File 'lib/rubygems/resolver/activation_request.rb', line 37 def eql?(other) self == other end |
#full_name ⇒ Object Also known as: to_s
The full name of the specification to be activated.
82 83 84 |
# File 'lib/rubygems/resolver/activation_request.rb', line 82 def full_name name_tuple.full_name end |
#full_spec ⇒ Object
The Gem::Specification for this activation request.
91 92 93 |
# File 'lib/rubygems/resolver/activation_request.rb', line 91 def full_spec Gem::Specification === @spec ? @spec : @spec.spec end |
#hash ⇒ Object
41 42 43 |
# File 'lib/rubygems/resolver/activation_request.rb', line 41 def hash @spec.hash end |
#inspect ⇒ Object
:nodoc:
95 96 97 98 99 |
# File 'lib/rubygems/resolver/activation_request.rb', line 95 def inspect # :nodoc: '#<%s for %p from %s>' % [ self.class, @spec, @request ] end |
#installed? ⇒ Boolean
True if the requested gem has already been installed.
104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/rubygems/resolver/activation_request.rb', line 104 def installed? case @spec when Gem::Resolver::VendorSpecification then true else this_spec = full_spec Gem::Specification.any? do |s| s == this_spec end end end |
#name ⇒ Object
The name of this activation request’s specification
120 121 122 |
# File 'lib/rubygems/resolver/activation_request.rb', line 120 def name @spec.name end |
#parent ⇒ Object
Return the ActivationRequest that contained the dependency that we were activated for.
128 129 130 |
# File 'lib/rubygems/resolver/activation_request.rb', line 128 def parent @request.requester end |
#platform ⇒ Object
The platform of this activation request’s specification
153 154 155 |
# File 'lib/rubygems/resolver/activation_request.rb', line 153 def platform @spec.platform end |
#pretty_print(q) ⇒ Object
:nodoc:
132 133 134 135 136 137 138 139 140 141 |
# File 'lib/rubygems/resolver/activation_request.rb', line 132 def pretty_print(q) # :nodoc: q.group 2, '[Activation request', ']' do q.breakable q.pp @spec q.breakable q.text ' for ' q.pp @request end end |
#version ⇒ Object
The version of this activation request’s specification
146 147 148 |
# File 'lib/rubygems/resolver/activation_request.rb', line 146 def version @spec.version end |