Specifies a Specification object that should be activated. Also contains a dependency that was used to introduce this activation.
The parent request for this activation request.
The specification to be activated.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 22
def initialize(spec, request)
@spec = spec
@request = request
end
Creates a new ActivationRequest
that will activate spec
. The parent request
is used to provide diagnostics in case of conflicts.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 49
def development?
@request.development?
end
Is this activation request for a development dependency?
# File tmp/rubies/ruby-3.4.0-preview1/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
Downloads a gem at path
and returns the file path.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 38
def eql?(other)
self == other
end
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 81
def full_name
name_tuple.full_name
end
The full name of the specification to be activated.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 90
def full_spec
Gem::Specification === @spec ? @spec : @spec.spec
end
The Gem::Specification
for this activation request.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 42
def hash
@spec.hash
end
# File tmp/rubies/ruby-3.4.0-preview1/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
end
end
end
True if the requested gem has already been installed.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 117
def name
@spec.name
end
The name of this activation request’s specification
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 156
def name_tuple
@name_tuple ||= Gem::NameTuple.new(name, version, platform)
end
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 125
def parent
@request.requester
end
Return the ActivationRequest
that contained the dependency that we were activated for.
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 150
def platform
@spec.platform
end
The platform of this activation request’s specification
# File tmp/rubies/ruby-3.4.0-preview1/lib/rubygems/resolver/activation_request.rb, line 143
def version
@spec.version
end
The version of this activation request’s specification