Class: JSONSchemer::Draft202012::Vocab::Validation::Type

Inherits:
Keyword
  • Object
show all
Defined in:
lib/json_schemer/draft202012/vocab/validation.rb

Constant Summary

Constants included from Output

Output::FRAGMENT_ENCODE_REGEX

Instance Attribute Summary

Attributes inherited from Keyword

#parent, #parsed, #root, #value

Attributes included from Output

#keyword, #schema

Instance Method Summary collapse

Methods inherited from Keyword

#absolute_keyword_location, #error_key, #fetch, #initialize, #parsed_schema, #schema_pointer

Methods included from Output

#x_error

Constructor Details

This class inherits a constructor from JSONSchemer::Keyword

Instance Method Details

#error(formatted_instance_location:) ⇒ Object



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

def error(formatted_instance_location:, **)
  case value
  when 'null'
    "value at #{formatted_instance_location} is not null"
  when 'boolean'
    "value at #{formatted_instance_location} is not a boolean"
  when 'number'
    "value at #{formatted_instance_location} is not a number"
  when 'integer'
    "value at #{formatted_instance_location} is not an integer"
  when 'string'
    "value at #{formatted_instance_location} is not a string"
  when 'array'
    "value at #{formatted_instance_location} is not an array"
  when 'object'
    "value at #{formatted_instance_location} is not an object"
  else
    "value at #{formatted_instance_location} is not one of the types: #{value}"
  end
end

#validate(instance, instance_location, keyword_location, _context) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/json_schemer/draft202012/vocab/validation.rb', line 28

def validate(instance, instance_location, keyword_location, _context)
  case parsed
  when String
    result(instance, instance_location, keyword_location, valid_type(parsed, instance), :type => parsed)
  when Array
    result(instance, instance_location, keyword_location, parsed.any? { |type| valid_type(type, instance) })
  end
end