lib/release_tools/gemfile_parser.rb (21 lines of code) (raw):

# frozen_string_literal: true module ReleaseTools class GemfileParser include ::SemanticLogger::Loggable class VersionNotFoundError < StandardError def initialize(gem_name) super("Unable to find a version for gem `#{gem_name}`") end end def initialize(filecontent) @filecontent = filecontent @parsed_file = Bundler::LockfileParser.new(@filecontent) end def gem_version(gem_name) spec = @parsed_file.specs.find { |x| x.name.match?(gem_name.to_s) } raise VersionNotFoundError, gem_name if spec.nil? spec.version.to_s.tap do |version| logger.trace('Version from gemfile', gem: gem_name, version: version) end end end end