Class: Lutaml::Qea::Validation::Formatters::JsonFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/qea/validation/formatters/json_formatter.rb

Overview

Formats validation results as JSON for machine consumption

Examples:

Basic usage

formatter = JsonFormatter.new(result)
puts formatter.format

Pretty printed

formatter = JsonFormatter.new(result, pretty: true)
puts formatter.format

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(result: nil, **options) ⇒ JsonFormatter

Creates a new JSON formatter

Parameters:

  • result (ValidationResult) (defaults to: nil)

    The validation result to format

  • options (Hash)

    Formatting options

Options Hash (**options):

  • :pretty (Boolean)

    Pretty print JSON (default: false)



26
27
28
29
30
31
# File 'lib/lutaml/qea/validation/formatters/json_formatter.rb', line 26

def initialize(result: nil, **options)
  @result = result
  @options = {
    pretty: false,
  }.merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



19
20
21
# File 'lib/lutaml/qea/validation/formatters/json_formatter.rb', line 19

def options
  @options
end

#resultObject (readonly)

Returns the value of attribute result.



19
20
21
# File 'lib/lutaml/qea/validation/formatters/json_formatter.rb', line 19

def result
  @result
end

Instance Method Details

#formatString

Formats the validation result as JSON

Returns:

  • (String)

    JSON output



36
37
38
39
40
41
42
43
44
# File 'lib/lutaml/qea/validation/formatters/json_formatter.rb', line 36

def format
  data = build_data

  if options[:pretty]
    JSON.pretty_generate(data)
  else
    JSON.generate(data)
  end
end