Sha256: d7df466d89fc4933e60462b9c4273dbaf33facd625ad38a0e2739a4feb887eba
Contents?: true
Size: 833 Bytes
Versions: 26
Compression:
Stored size: 833 Bytes
Contents
module Parser class Diagnostic::Engine attr_accessor :consumer attr_accessor :all_errors_are_fatal attr_accessor :ignore_warnings def initialize(consumer=nil) @consumer = consumer @all_errors_are_fatal = false @ignore_warnings = false end def process(diagnostic) if ignore?(diagnostic) # do nothing elsif @consumer @consumer.call(diagnostic) end if raise?(diagnostic) raise Parser::SyntaxError, diagnostic.message end self end protected def ignore?(diagnostic) @ignore_warnings && diagnostic.level == :warning end def raise?(diagnostic) (@all_errors_are_fatal && diagnostic.level == :error) || diagnostic.level == :fatal end end end
Version data entries
26 entries across 26 versions & 1 rubygems