class DebChangelog

Constants

AUTHOR_REGEX
CHANGE_REGEX
METADATA_REGEX

Public Class Methods

parse(contents) click to toggle source
# File lib/deb-changelog.rb, line 11
def self.parse(contents)
  entries = []

  contents.each_line do |line|
    line.chomp!

    if (metadata = line.match(METADATA_REGEX)&.named_captures)
      entries << metadata
      next
    end

    if (change = line.match(CHANGE_REGEX)&.named_captures)
      entries.last["changes"] ||= []
      entries.last["changes"] << change["message"]
      next
    end

    if (author = line.match(AUTHOR_REGEX)&.named_captures)
      entries.last.merge! author
      next
    end
  end

  entries
end
parse_file(file) click to toggle source
# File lib/deb-changelog.rb, line 6
def self.parse_file(file)
  contents = File.read file
  parse contents
end