Class: JSON::Schema::Validator
- Inherits:
-
Object
- Object
- JSON::Schema::Validator
- Defined in:
- lib/json-schema/validator.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
Returns the value of attribute attributes.
-
#uri ⇒ Object
Returns the value of attribute uri.
Instance Method Summary collapse
- #extend_schema_definition(schema_uri) ⇒ Object
-
#initialize ⇒ Validator
constructor
A new instance of Validator.
- #to_s ⇒ Object
- #validate(current_schema, data, fragments, options = {}) ⇒ Object
Constructor Details
#initialize ⇒ Validator
Returns a new instance of Validator.
49 50 51 52 |
# File 'lib/json-schema/validator.rb', line 49 def initialize() @attributes = {} @uri = nil end |
Instance Attribute Details
#attributes ⇒ Object
Returns the value of attribute attributes.
47 48 49 |
# File 'lib/json-schema/validator.rb', line 47 def attributes @attributes end |
#uri ⇒ Object
Returns the value of attribute uri.
47 48 49 |
# File 'lib/json-schema/validator.rb', line 47 def uri @uri end |
Instance Method Details
#extend_schema_definition(schema_uri) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/json-schema/validator.rb', line 54 def extend_schema_definition(schema_uri) u = URI.parse(schema_uri) validator = JSON::Validator.validators["#{u.scheme}://#{u.host}#{u.path}"] if validator.nil? raise SchemaError.new("Schema not found: #{u.scheme}://#{u.host}#{u.path}") end @attributes.merge!(validator.attributes) end |
#to_s ⇒ Object
63 64 65 |
# File 'lib/json-schema/validator.rb', line 63 def to_s "#{@uri.scheme}://#{uri.host}#{uri.path}" end |
#validate(current_schema, data, fragments, options = {}) ⇒ Object
67 68 69 70 71 72 73 74 |
# File 'lib/json-schema/validator.rb', line 67 def validate(current_schema, data, fragments, = {}) current_schema.schema.each do |attr_name,attribute| if @attributes.has_key?(attr_name.to_s) @attributes[attr_name.to_s].validate(current_schema, data, fragments, self, ) end end data end |