class EacRubyGemsUtils::Gem::VersionFile

Constants

VERSION_LINE_PATTERN

Public Instance Methods

value() click to toggle source
# File lib/eac_ruby_gems_utils/gem/version_file.rb, line 12
def value
  path.read.each_line.lazy.map { |line| line_value(line) }.find { |v| v }
end
value=(new_value) click to toggle source
# File lib/eac_ruby_gems_utils/gem/version_file.rb, line 16
def value=(new_value)
  path.write(new_value_content(new_value))
end

Private Instance Methods

line_value(line) click to toggle source

@return Version found in line, nil otherwise.

# File lib/eac_ruby_gems_utils/gem/version_file.rb, line 23
def line_value(line)
  VERSION_LINE_PATTERN.if_match(line.rstrip, false) { |m| ::Gem::Version.new(m[2]) }
end
new_value_content(new_value) click to toggle source
# File lib/eac_ruby_gems_utils/gem/version_file.rb, line 27
def new_value_content(new_value)
  path.read.each_line
      .map { |line| new_value_line(line, new_value) }
      .join
end
new_value_line(line, new_value) click to toggle source
# File lib/eac_ruby_gems_utils/gem/version_file.rb, line 33
def new_value_line(line, new_value)
  m = VERSION_LINE_PATTERN.match(line)
  return line unless m

  "#{m[1]}VERSION = '#{new_value}'#{m[3]}"
end