Class: JsonStructure::InstanceValidator
- Inherits:
-
Object
- Object
- JsonStructure::InstanceValidator
- Defined in:
- lib/jsonstructure/instance_validator.rb
Overview
Validates JSON instances against JSON Structure schemas
This class is thread-safe. Multiple threads can call validate concurrently.
Class Method Summary collapse
-
.validate(instance_json, schema_json) ⇒ ValidationResult
Validate an instance against a schema.
-
.validate!(instance_json, schema_json) ⇒ ValidationResult
Validate an instance against a schema, raising an exception on failure.
Class Method Details
.validate(instance_json, schema_json) ⇒ ValidationResult
Validate an instance against a schema
This method is thread-safe and can be called from multiple threads concurrently.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/jsonstructure/instance_validator.rb', line 25 def self.validate(instance_json, schema_json) raise ArgumentError, 'instance_json must be a String' unless instance_json.is_a?(String) raise ArgumentError, 'schema_json must be a String' unless schema_json.is_a?(String) JsonStructure.validation_started begin result_ptr = ::FFI::MemoryPointer.new(FFI::JSResult.size) FFI.js_result_init(result_ptr) FFI.js_validate_instance(instance_json, schema_json, result_ptr) ValidationResult.from_ffi(result_ptr) ensure JsonStructure.validation_completed end end |
.validate!(instance_json, schema_json) ⇒ ValidationResult
Validate an instance against a schema, raising an exception on failure
55 56 57 58 59 60 |
# File 'lib/jsonstructure/instance_validator.rb', line 55 def self.validate!(instance_json, schema_json) result = validate(instance_json, schema_json) raise InstanceValidationError.new(result) unless result.valid? result end |