class RSCM::Parser

Public Class Methods

new(break_regexp) click to toggle source
# File lib/rscm/parser.rb, line 4
def initialize(break_regexp)
  @break_regexp = break_regexp
end

Public Instance Methods

parse(io, skip_line_parsing=false, &line_proc) click to toggle source
# File lib/rscm/parser.rb, line 8
def parse(io, skip_line_parsing=false, &line_proc)
  parse_until_regexp_matches(io, skip_line_parsing, &line_proc)
  if(skip_line_parsing)
    nil
  else
    next_result
  end
end

Protected Instance Methods

next_result() click to toggle source
# File lib/rscm/parser.rb, line 23
def next_result
  raise "Must override next_result(line)"
end
parse_line(line) click to toggle source
# File lib/rscm/parser.rb, line 19
def parse_line(line)
  raise "Must override parse_line(line)"
end

Private Instance Methods

parse_until_regexp_matches(io, skip_line_parsing) { |line| ... } click to toggle source
# File lib/rscm/parser.rb, line 29
def parse_until_regexp_matches(io, skip_line_parsing, &line_proc)
  io.each_line { |line|
    yield line if block_given?
    if line =~ @break_regexp
      return
    end
    parse_line(line) unless skip_line_parsing
  }
end