The LockSpecification
comes from a lockfile (Gem::RequestSet::Lockfile
).
A LockSpecification’s dependency information is pre-filled from the lockfile.
Attributes
Read
No documentation available
Class Methods
lib/rubygems/resolver/lock_specification.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/resolver/lock_specification.rb, line 11
def initialize(set, name, version, sources, platform)
super()
@name = name
@platform = platform
@set = set
@source = sources.first
@sources = sources
@version = version
@dependencies = []
@spec = nil
end
No documentation available
Instance Methods
lib/rubygems/resolver/lock_specification.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/resolver/lock_specification.rb, line 29
def install(options = {})
destination = options[:install_dir] || Gem.dir
if File.exist? File.join(destination, "specifications", spec.spec_name)
yield nil
return
end
super
end
This is a null install as a locked specification is considered installed. options
are ignored.
#
lib/rubygems/resolver/lock_specification.rb
View on GitHub
# File tmp/rubies/ruby-3.2.0/lib/rubygems/resolver/lock_specification.rb, line 72
def spec
@spec ||= Gem::Specification.find do |spec|
spec.name == @name && spec.version == @version
end
@spec ||= Gem::Specification.new do |s|
s.name = @name
s.version = @version
s.platform = @platform
s.dependencies.concat @dependencies
end
end
A specification constructed from the lockfile is returned