Sha256: c75bda4879feaf5ba91c0bd6a7fe7c98a1defea7b2462aad12138924cd07e65c
Contents?: true
Size: 912 Bytes
Versions: 2
Compression:
Stored size: 912 Bytes
Contents
require 'bundler' module GemfileLocker class Locker < GemfileProcessor SEGMENTS_COUNT = { major: 1, minor: 2, patch: 3, full: 100, }.freeze attr_reader :lockfile def initialize(lockfile, *args) @lockfile = lockfile super(*args) end def bundler_specs @bundler_specs ||= Bundler::LockfileParser.new(lockfile).specs end def process_gem(data) name = data[:name] locked = bundler_specs.find { |x| x.name == name } locked && set_gem_version(data, prepare_version(locked.version)) end def skip_gem?(data) super || data[:version] && !options[:force] end private def prepare_version(version) if options[:loose] segments = version.segments.take(SEGMENTS_COUNT[options[:loose].to_sym]) "~> #{segments.join('.')}" else version.to_s end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gemfile_locker-0.2.0 | lib/gemfile_locker/locker.rb |
gemfile_locker-0.1.0 | lib/gemfile_locker/locker.rb |