Class: JsonValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
lib/active_model/json_validator/validator.rb

Constant Summary collapse

DEFAULT_SCHEMAS_PATH =
%w(app models schemas).freeze

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ JsonValidator

Returns a new instance of JsonValidator.



4
5
6
7
# File 'lib/active_model/json_validator/validator.rb', line 4

def initialize(options)
  @model = options[:class]
  super
end

Instance Method Details

#validate_each(model, attribute, value) ⇒ Object



9
10
11
12
13
# File 'lib/active_model/json_validator/validator.rb', line 9

def validate_each(model, attribute, value)
  schema = options.fetch(:schema, default_schema(attribute))
  errors = JSON::Validator.fully_validate(schema, value)
  model.errors.add(attribute, message(errors)) if errors.any?
end