Support for defining JSON schema for your Granola serializers.
require "granola/schema"
class PersonSerializer < Granola::Serializer
def self.schema
{
"type" => "object",
"required" => ["name", "email"],
"properties" => {
"name" => { "type" => "string" },
"email" => { "type" => "string" },
"age" => { "type" => "integer" },
}
}
end
def data
{
"name" => object.name,
"email" => object.email,
"age" => object.age
}
end
end
serializer = PersonSerializer.new(person)
serializer.valid? #=> true
gem install granola-schema
This project is shared under the MIT license. See the attached LICENSE file for details.