Class: JSON::Schema::EnumAttribute

Inherits:
Attribute
  • Object
show all
Defined in:
lib/json_schema_monkey_patch.rb

Class Method Summary collapse

Class Method Details

.validate(current_schema, data, fragments, processor, validator, options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/json_schema_monkey_patch.rb', line 11

def self.validate(current_schema, data, fragments, processor, validator, options = {})
  unless current_schema.schema["enum"].include?(data)
    if options[:record_errors]
      message = "The property '#{build_fragment(fragments)}' value #{data.inspect} did not match one of the following values:"
      current_schema.schema["enum"].each {|val|
        if val.is_a?(NilClass)
          message += " null,"
        elsif val.is_a?(Array)
          message += " (array),"
        elsif val.is_a?(Hash)
          message += " (object),"
        else
          message += " #{val.to_s},"
        end
      }
      message.chop!
      validation_error(processor, message, fragments, current_schema, self, options[:record_errors])
    else
      raise ValidationError.new("", [], nil, current_schema)
    end
  end
end