Class: JsonSchemaValidator::Json_Schema

Inherits:
Base
  • Object
show all
Defined in:
lib/json_schema_validator/json_schema.rb

Instance Attribute Summary

Attributes inherited from Base

#files_to_validate

Instance Method Summary collapse

Methods inherited from Base

#errors, #log, #log_fmt, run, #success, #validate_all, #validate_data, #validate_schemas

Constructor Details

#initialize(files_to_validate) ⇒ Json_Schema

Returns a new instance of Json_Schema.



5
6
7
8
9
10
11
# File 'lib/json_schema_validator/json_schema.rb', line 5

def initialize(files_to_validate)
  @files_to_validate = files_to_validate
  schema_data = File.read("#{File.dirname(__FILE__)}/schema.json")
  schema_json = JSON.parse(schema_data)
  @schema = ::JsonSchema.parse!(schema_json)
  @errors, @success = [], []
end

Instance Method Details

#use_for_validation(schema) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/json_schema_validator/json_schema.rb', line 25

def use_for_validation(schema)
   schema_to_test = JSON.parse(schema)
  begin
   ::JsonSchema.parse!(schema_to_test)
  rescue
    errors << "Data validation failed: #{schema_to_test['title']}\n#{$!}"
  else
    success << schema_to_test['title']
  end
end

#validate(schema) ⇒ Object

Parameters:

  • schema (String)

    to test against the meta schema



14
15
16
17
18
19
20
21
22
23
# File 'lib/json_schema_validator/json_schema.rb', line 14

def validate(schema)
  schema_to_test = JSON.parse(schema)
  begin
    @schema.validate! schema_to_test
  rescue
    errors << "Schema validation failed: #{schema_to_test['title']}\n#{$!}"
  else
    success << File.basename(schema)
  end
end