Module: ActiveModel::Serializer::Validator::Mixin::ClassMethods
- Defined in:
- lib/active_model/serializer/validator/mixin.rb
Instance Method Summary collapse
-
#json_schema(value = nil) ⇒ Object
Set the JSON schema to use for this class.
-
#valid_against_schema?(schema, serializer) ⇒ Boolean
Validate the rendered data against a JSON schema file and return an errors array.
Instance Method Details
#json_schema(value = nil) ⇒ Object
Set the JSON schema to use for this class
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/active_model/serializer/validator/mixin.rb', line 19 def json_schema(value = nil) @_json_schema ||= begin superclass.json_schema if superclass.respond_to?(:json_schema) end return @_json_schema unless value if !value.is_a?(String) && !value.is_a?(Hash) raise InvalidSchemaError.new('Schema must be a path to a file or a Hash.') elsif value.is_a?(String) && !File.exists?(value) raise InvalidSchemaError.new('Schema file does not exist.') else @_json_schema = value end end |
#valid_against_schema?(schema, serializer) ⇒ Boolean
Validate the rendered data against a JSON schema file and return an errors array
37 38 39 |
# File 'lib/active_model/serializer/validator/mixin.rb', line 37 def valid_against_schema?(schema, serializer) JSON::Validator.fully_validate(schema, serializer.to_json) end |