class Yori::SchemaValidator
SchemaValidator: Common validate methods of Schema
.
Attributes
schema[R]
Public Class Methods
new(schema)
click to toggle source
# File lib/yori/schema_validator.rb, line 6 def initialize(schema) @schema = schema end
Public Instance Methods
simple_class_name()
click to toggle source
# File lib/yori/schema_validator.rb, line 36 def simple_class_name schema.class.name.split('::').last end
validate_field_value_type!(field, klass)
click to toggle source
# File lib/yori/schema_validator.rb, line 19 def validate_field_value_type!(field, klass) value = schema[field] return if value.nil? || value.is_a?(klass) raise Yori::Errors::InvalidSchemaError, "value of #{field} is not #{klass}." end
validate_limit_field_values!(field, *values)
click to toggle source
# File lib/yori/schema_validator.rb, line 25 def validate_limit_field_values!(field, *values) value = schema[field] return if values.include?(value) raise Yori::Errors::InvalidSchemaError, "Valid values of #{field} are #{values.join(', ')}." end
validate_mutually_exclusive_fields!(field1, field2)
click to toggle source
# File lib/yori/schema_validator.rb, line 31 def validate_mutually_exclusive_fields!(field1, field2) return if schema.key?(field1) ^ schema.key?(field2) raise Yori::Errors::InvalidSchemaError, "#{field1} and #{field2} are mutually exclusive." end
validate_require_fields!(*fields)
click to toggle source
# File lib/yori/schema_validator.rb, line 12 def validate_require_fields!(*fields) fields.each do |field| next if schema.key?(field) raise Yori::Errors::MissingRequiredFieldError, "#{field} of #{simple_class_name} is Required." end end