class Gem::Resolver::LockSpecification
The LockSpecification comes from a lockfile (Gem::RequestSet::Lockfile).
A LockSpecification’s dependency information is pre-filled from the lockfile.
Attributes
Public Class Methods
# File lib/rubygems/resolver/lock_specification.rb, line 12 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
Calls superclass method
Gem::Resolver::Specification::new
Public Instance Methods
# File lib/rubygems/resolver/lock_specification.rb, line 30 def install(options = {}) destination = options[:install_dir] || Gem.dir installed = Gem::SpecificationRecord.dirs_from([destination]).any? do |spec_dir| File.exist? File.join(spec_dir, spec.spec_name) end if installed yield nil return end super end
This is a null install as a locked specification is considered installed. options are ignored.
Calls superclass method
Gem::Resolver::Specification#install
Source
# File lib/rubygems/resolver/lock_specification.rb, line 77 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