Module: JSONSchemer::Errors

Defined in:
lib/json_schemer/errors.rb

Class Method Summary collapse

Class Method Details

.pretty(error) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/json_schemer/errors.rb', line 7

def pretty(error)
  data_pointer, type, schema = error.values_at('data_pointer', 'type', 'schema')
  location = data_pointer.empty? ? 'root' : "property '#{data_pointer}'"

  case type
  when 'required'
    keys = error.fetch('details').fetch('missing_keys').join(', ')
    "#{location} is missing required keys: #{keys}"
  when 'null', 'string', 'boolean', 'integer', 'number', 'array', 'object'
    "#{location} is not of type: #{type}"
  when 'pattern'
    "#{location} does not match pattern: #{schema.fetch('pattern')}"
  when 'format'
    "#{location} does not match format: #{schema.fetch('format')}"
  when 'const'
    "#{location} is not: #{schema.fetch('const').inspect}"
  when 'enum'
    "#{location} is not one of: #{schema.fetch('enum')}"
  else
    "#{location} is invalid: error_type=#{type}"
  end
end