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. -
#full_name ⇒ Object
The full name of the specification to be activated.
-
#full_spec ⇒ Object
The Gem::Specification for this activation request.
-
#initialize(spec, request, others_possible = true) ⇒ 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.
-
#others_possible? ⇒ Boolean
Indicate if this activation is one of a set of possible requests for the same Dependency request.
-
#parent ⇒ Object
Return the ActivationRequest that contained the dependency that we were activated for.
-
#pretty_print(q) ⇒ Object
:nodoc:.
-
#version ⇒ Object
The version of this activation request’s specification.
Constructor Details
#initialize(spec, request, others_possible = true) ⇒ ActivationRequest
Creates a new ActivationRequest that will activate spec
. The parent request
is used to provide diagnostics in case of conflicts.
others_possible
indicates that other specifications may also match this activation request.
24 25 26 27 28 |
# File 'lib/rubygems/resolver/activation_request.rb', line 24 def initialize spec, request, others_possible = true @spec = spec @request = request @others_possible = others_possible 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:
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rubygems/resolver/activation_request.rb', line 30 def == other # :nodoc: case other when Gem::Specification @spec == other when Gem::Resolver::ActivationRequest @spec == other.spec && @request == other.request else false end end |
#development? ⇒ Boolean
Is this activation request for a development dependency?
44 45 46 |
# File 'lib/rubygems/resolver/activation_request.rb', line 44 def development? @request.development? end |
#download(path) ⇒ Object
Downloads a gem at path
and returns the file path.
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/rubygems/resolver/activation_request.rb', line 51 def download path if @spec.respond_to? :source source = @spec.source else source = Gem.sources.first end Gem.ensure_gem_subdirectories path source.download full_spec, path end |
#full_name ⇒ Object
The full name of the specification to be activated.
66 67 68 |
# File 'lib/rubygems/resolver/activation_request.rb', line 66 def full_name @spec.full_name end |
#full_spec ⇒ Object
The Gem::Specification for this activation request.
73 74 75 |
# File 'lib/rubygems/resolver/activation_request.rb', line 73 def full_spec Gem::Specification === @spec ? @spec : @spec.spec end |
#inspect ⇒ Object
:nodoc:
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/rubygems/resolver/activation_request.rb', line 77 def inspect # :nodoc: others = case @others_possible when true then # TODO remove at RubyGems 3 ' (others possible)' when false then # TODO remove at RubyGems 3 nil else unless @others_possible.empty? then others = @others_possible.map { |s| s.full_name } " (others possible: #{others.join ', '})" end end '#<%s for %p from %s%s>' % [ self.class, @spec, @request, others ] end |
#installed? ⇒ Boolean
True if the requested gem has already been installed.
99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/rubygems/resolver/activation_request.rb', line 99 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
115 116 117 |
# File 'lib/rubygems/resolver/activation_request.rb', line 115 def name @spec.name end |
#others_possible? ⇒ Boolean
Indicate if this activation is one of a set of possible requests for the same Dependency request.
123 124 125 126 127 128 129 130 |
# File 'lib/rubygems/resolver/activation_request.rb', line 123 def others_possible? case @others_possible when true, false then @others_possible else not @others_possible.empty? end end |
#parent ⇒ Object
Return the ActivationRequest that contained the dependency that we were activated for.
136 137 138 |
# File 'lib/rubygems/resolver/activation_request.rb', line 136 def parent @request.requester end |
#pretty_print(q) ⇒ Object
:nodoc:
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/rubygems/resolver/activation_request.rb', line 140 def pretty_print q # :nodoc: q.group 2, '[Activation request', ']' do q.breakable q.pp @spec q.breakable q.text ' for ' q.pp @request case @others_possible when false then when true then q.breakable q.text 'others possible' else unless @others_possible.empty? then q.breakable q.text 'others ' q.pp @others_possible.map { |s| s.full_name } end end end end |
#version ⇒ Object
The version of this activation request’s specification
167 168 169 |
# File 'lib/rubygems/resolver/activation_request.rb', line 167 def version @spec.version end |