Class: JSON5::DiagnosticSink
- Inherits:
-
Object
- Object
- JSON5::DiagnosticSink
- Defined in:
- lib/json5/diagnostic.rb
Class Method Summary collapse
Instance Method Summary collapse
- #emit(code:, message:, byte_offset:, end_byte_offset:, line: nil, column: nil) ⇒ Object
-
#initialize(target, filename: nil) ⇒ DiagnosticSink
constructor
A new instance of DiagnosticSink.
Constructor Details
#initialize(target, filename: nil) ⇒ DiagnosticSink
Returns a new instance of DiagnosticSink.
45 46 47 48 |
# File 'lib/json5/diagnostic.rb', line 45 def initialize(target, filename: nil) @target = target @filename = filename end |
Class Method Details
.build(target, filename: nil) ⇒ Object
37 38 39 |
# File 'lib/json5/diagnostic.rb', line 37 def self.build(target, filename: nil) new(target, filename: filename) end |
.write_default_warning(diagnostic) ⇒ Object
41 42 43 |
# File 'lib/json5/diagnostic.rb', line 41 def self.write_default_warning(diagnostic) Warning.warn("#{diagnostic.} (#{diagnostic.code})\n") end |
Instance Method Details
#emit(code:, message:, byte_offset:, end_byte_offset:, line: nil, column: nil) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/json5/diagnostic.rb', line 50 def emit(code:, message:, byte_offset:, end_byte_offset:, line: nil, column: nil) diagnostic = Diagnostic.new( code: code, message: , filename: @filename, byte_offset: byte_offset, end_byte_offset: end_byte_offset, line: line, column: column ) if @target.is_a?(Array) @target << diagnostic elsif @target.respond_to?(:call) @target.call(diagnostic) elsif @target != :ignore self.class.write_default_warning(diagnostic) end diagnostic end |