frozen_string_literal: false
Parses a gem.deps.rb.lock file and constructs a LockSet containing the dependencies found inside. If the lock file is missing no LockSet is constructed.
Namespace
- CLASS Gem::RequestSet::Lockfile::ParseError
- CLASS Gem::RequestSet::Lockfile::Parser
- CLASS Gem::RequestSet::Lockfile::Tokenizer
Methods
Attributes
| [R] | platforms | The platforms for this Lockfile |
Class Public methods
build(request_set, gem_deps_file, dependencies = nil)
Link
Creates a new Lockfile for the given
request_set and gem_deps_file location.
new(request_set, gem_deps_file, dependencies)
Link
# File lib/rubygems/request_set/lockfile.rb, line 74 def initialize request_set, gem_deps_file, dependencies @set = request_set @dependencies = dependencies @gem_deps_file = File.expand_path(gem_deps_file) @gem_deps_dir = File.dirname(@gem_deps_file) @gem_deps_file.untaint unless gem_deps_file.tainted? @platforms = [] end
Instance Public methods
add_GIT(out, git_requests)
Link
# File lib/rubygems/request_set/lockfile.rb, line 125 def add_GIT out, git_requests return if git_requests.empty? by_repository_revision = git_requests.group_by do |request| source = request.spec.source [source.repository, source.rev_parse] end out << "GIT" by_repository_revision.each do |(repository, revision), requests| out << " remote: #{repository}" out << " revision: #{revision}" out << " specs:" requests.sort_by { |request| request.name }.each do |request| out << " #{request.name} (#{request.version})" dependencies = request.spec.dependencies.sort_by { |dep| dep.name } dependencies.each do |dep| out << " #{dep.name}#{dep.requirement.for_lockfile}" end end end out << nil end
spec_groups()
Link
to_s()
Link
The contents of the lock file.
# File lib/rubygems/request_set/lockfile.rb, line 203 def to_s out = [] groups = spec_groups add_PATH out, groups.delete(Gem::Resolver::VendorSpecification) { [] } add_GIT out, groups.delete(Gem::Resolver::GitSpecification) { [] } add_GEM out, groups add_PLATFORMS out add_DEPENDENCIES out out.join "\n" end