Sha256: 599d96fb18cbab272e7fc9e582a58b73942346fa1647ad8d5bf180abe62767e1
Contents?: true
Size: 959 Bytes
Versions: 1
Compression:
Stored size: 959 Bytes
Contents
module OffenseToCorrector class Offense # How many underline carots (^), and potentially an error after OFFENSE_MATCH = /^ *?(?<underline>\^+) *?(?<error>.*)?$/ attr_reader :error, :range, :source def initialize(error:, range:, source:) @error = error @range = range @source = source end def deconstruct_keys(keys) { error:, range:, source: } end # See if there's an underline, if so get how long it is and # the error message after it # def self.parse(line:, previous_line:) match_data = OFFENSE_MATCH.match(line) or return nil underline = match_data[:underline] error = match_data[:error].lstrip underline_start = line.index(underline) underline_end = underline_start + underline.size range = underline_start...underline_end source = previous_line.slice(range).chomp new(error:, range:, source:) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
offense_to_corrector-0.0.2 | lib/offense_to_corrector/offense.rb |