class JsonValidator
Constants
- DEFAULT_SCHEMAS_PATH
Public Class Methods
new(options)
click to toggle source
Calls superclass method
# File lib/active_model/json_validator/validator.rb, line 4 def initialize(options) @model = options[:class] super end
Public Instance Methods
validate_each(model, attribute, value)
click to toggle source
# 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
Private Instance Methods
default_model_path()
click to toggle source
# File lib/active_model/json_validator/validator.rb, line 34 def default_model_path @model.model_name.singular end
default_root_path()
click to toggle source
# File lib/active_model/json_validator/validator.rb, line 23 def default_root_path require 'rails' Rails.root.join.to_s rescue LoadError File.join.to_s end
default_schema(attribute)
click to toggle source
# File lib/active_model/json_validator/validator.rb, line 38 def default_schema(attribute) File.join( default_root_path, default_schemas_path, default_model_path, "#{attribute}.json" ).to_s end
default_schemas_path()
click to toggle source
# File lib/active_model/json_validator/validator.rb, line 30 def default_schemas_path DEFAULT_SCHEMAS_PATH end
message(errors)
click to toggle source
# File lib/active_model/json_validator/validator.rb, line 17 def message(errors) message = options.fetch(:message, :invalid_json) return message unless message.respond_to?(:call) message.call(errors) end