Sha256: fcd76b2ad6fb8c08f9bec75c8fdda7ff4543188efa671031ecc788f15d13e578
Contents?: true
Size: 458 Bytes
Versions: 2
Compression:
Stored size: 458 Bytes
Contents
class JsonValidator < ActiveModel::EachValidator def initialize(options) options.reverse_merge!(message: :invalid_json) options.reverse_merge!(schema: nil) super end def validate_each(record, attribute, value) json_value = JSON.dump(value) errors = ::JSON::Validator.fully_validate(options.fetch(:schema), json_value) if errors.any? record.errors.add(attribute, options.fetch(:message), value: value) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activerecord_json_validator-0.1 | lib/active_record/json_validator/validator.rb |
activerecord_json_validator-0.0.1 | lib/active_record/json_validator/validator.rb |