brandur / json_schema

A JSON Schema V4 and Hyperschema V4 parser and validator.
MIT License
230 stars 45 forks source link

JsonPointer::Evaluator does not work with properties which is treated internally in different name #87

Closed okitan closed 7 years ago

okitan commented 7 years ago
#!/usr/bin/env ruby

require "json_schema"

json = { "maximum" => 1 }
schema = ::JsonSchema.parse!(json)

json_pointer = "#/maximum"

p ::JsonPointer::Evaluator.new(json).evaluate(json_pointer)

begin
  p ::JsonPointer::Evaluator.new(schema).evaluate(json_pointer)
rescue => e
  p e
end

p ::JsonPointer::Evaluator.new(schema).evaluate("#/max")

,and it results

1
#<NoMethodError: Schema does not respond to #maximum>
1

That is because ::JsonSchema::Schema does not respond to maximum but responds to max.

I suppose it might work if it has aliases, maximum, maximum=, exclusiveMaximum, and so on.

brandur commented 7 years ago

Thanks for reporting Kunio.

Fixed released as 0.16.2.