Class: Gem::Resolver::ActivationRequest
Relationships & Source Files | |
Inherits: | Object |
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.
Class Method Summary
-
.new(spec, request) ⇒ ActivationRequest
constructor
Creates a new
ActivationRequest
that will activate #spec.
Instance Attribute Summary
-
#development? ⇒ Boolean
readonly
Is this activation request for a development dependency?
-
#installed? ⇒ Boolean
readonly
True if the requested gem has already been installed.
-
#request
readonly
The parent request for this activation request.
-
#spec
readonly
The specification to be activated.
Instance Method Summary
-
#download(path)
Downloads a gem at Gem.path and returns the file path.
- #eql?(other) ⇒ Boolean
-
#full_name
(also: #to_s)
The full name of the specification to be activated.
-
#full_spec
The
::Gem::Specification
for this activation request. - #hash
-
#name
The name of this activation request’s specification.
-
#parent
Return the
ActivationRequest
that contained the dependency that we were activated for. -
#platform
The platform of this activation request’s specification.
-
#to_s
Alias for #full_name.
-
#version
The version of this activation request’s specification.
- #name_tuple private
- #==(other) Internal use only
- #inspect Internal use only
- #pretty_print(q) Internal use only
Constructor Details
.new(spec, request) ⇒ ActivationRequest
Instance Attribute Details
#development? ⇒ Boolean
(readonly)
Is this activation request for a development dependency?
# File 'lib/rubygems/resolver/activation_request.rb', line 49
def development? @request.development? end
#installed? ⇒ Boolean
(readonly)
True if the requested gem has already been installed.
# File 'lib/rubygems/resolver/activation_request.rb', line 101
def installed? case @spec when Gem::Resolver::VendorSpecification then true else this_spec = full_spec Gem::Specification.any? do |s| s == this_spec && s.base_dir == this_spec.base_dir end end end
#request (readonly)
The parent request for this activation request.
# File 'lib/rubygems/resolver/activation_request.rb', line 11
attr_reader :request
#spec (readonly)
The specification to be activated.
# File 'lib/rubygems/resolver/activation_request.rb', line 16
attr_reader :spec
Instance Method Details
#==(other)
# File 'lib/rubygems/resolver/activation_request.rb', line 27
def ==(other) # :nodoc: case other when Gem::Specification @spec == other when Gem::Resolver::ActivationRequest @spec == other.spec else false end end
#download(path)
Downloads a gem at Gem.path and returns the file path.
# File 'lib/rubygems/resolver/activation_request.rb', line 56
def download(path) Gem.ensure_gem_subdirectories path if @spec.respond_to? :sources exception = nil path = @spec.sources.find do |source| source.download full_spec, path rescue exception 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
# File 'lib/rubygems/resolver/activation_request.rb', line 38
def eql?(other) self == other end
#full_name Also known as: #to_s
The full name of the specification to be activated.
# File 'lib/rubygems/resolver/activation_request.rb', line 81
def full_name name_tuple.full_name end
#full_spec
The ::Gem::Specification
for this activation request.
# File 'lib/rubygems/resolver/activation_request.rb', line 90
def full_spec Gem::Specification === @spec ? @spec : @spec.spec end
#hash
[ GitHub ]# File 'lib/rubygems/resolver/activation_request.rb', line 42
def hash @spec.hash end
#inspect
# File 'lib/rubygems/resolver/activation_request.rb', line 94
def inspect # :nodoc: format("#<%s for %p from %s>", self.class, @spec, @request) end
#name
The name of this activation request’s specification
# File 'lib/rubygems/resolver/activation_request.rb', line 117
def name @spec.name end
#name_tuple (private)
[ GitHub ]#parent
Return the ActivationRequest
that contained the dependency that we were activated for.
# File 'lib/rubygems/resolver/activation_request.rb', line 125
def parent @request.requester end
#platform
The platform of this activation request’s specification
# File 'lib/rubygems/resolver/activation_request.rb', line 150
def platform @spec.platform end
#pretty_print(q)
# File 'lib/rubygems/resolver/activation_request.rb', line 129
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
#to_s
Alias for #full_name.
# File 'lib/rubygems/resolver/activation_request.rb', line 85
alias_method :to_s, :full_name
#version
The version of this activation request’s specification
# File 'lib/rubygems/resolver/activation_request.rb', line 143
def version @spec.version end