class RailInspector::Changelog::Parser

Constants

RELEASE_HEADER

Public Class Methods

# File tools/rail_inspector/lib/rail_inspector/changelog.rb, line 106
def self.call(file)
  new(file).parse
end
# File tools/rail_inspector/lib/rail_inspector/changelog.rb, line 114
def initialize(file)
  @buffer = StringScanner.new(file)
  @lines = []
  @current_line = 1

  @entries = []
end
# File tools/rail_inspector/lib/rail_inspector/changelog.rb, line 110
def self.to_proc
  method(:call).to_proc
end

Public Instance Methods

# File tools/rail_inspector/lib/rail_inspector/changelog.rb, line 122
def parse
  until @buffer.eos?
    if peek_release_header?
      pop_entry
      next parse_release_header
    end

    if peek_footer?
      pop_entry
      next parse_footer
    end

    pop_entry if peek_probably_header?

    parse_line
  end

  @entries
end