class Lintress::Parser

Parse the response from RuboCop

Attributes

offenses[R]

Public Class Methods

new(s) click to toggle source
# File lib/lintress/parser.rb, line 9
def initialize s
  @offenses = []
  @lines = s.lines
end

Public Instance Methods

parse() click to toggle source
# File lib/lintress/parser.rb, line 14
def parse
  # remove_pointer_lines
  @lines.delete_if do |line|
    line.match?(/^\s+[\^]*$/) || line.match?(/^\^+$/)
  end

  # catalogue_offenses
  # (filename):(line):(column) (char): (reason)
  @lines.each do |line|
    ptn = %r{(?<file>[\w/\.]+):(?<line>\d+):(?<col>\d+): \w: (?<reason>.*)}
    m = line.match ptn
    next unless m
    offense = Offense.new m
    @offenses << offense
  end
end