Skip to content

peter-leonov/serializer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

Inspired by DroidLabs Serializer.

For classes like these:

Person = Struct.new(:name, :age, :dogs)
Dog = Struct.new(:name, :age)

make a serializer like this:

class DogsOwnerSerializer < Serializer
  resource do
    attr :name
    attr :age
    collection :dogs do
      attrs :name, :age
    end
  end
end

object tree like this:

person = Person.new(
  'Cruella', 44,
  [
    Dog.new('Perdita',0.5),
    Dog.new('Lucky',0.5),
    Dog.new('Rolly',0.5)
  ]
)

run:

DogsOwnerSerializer.serialize(person).to_json

result will look like:

{
  "name": "Cruella",
  "age": 44,
  "dogs":
  [
    {"name": "Perdita", "age": 0.5},
    {"name": "Lucky",   "age": 0.5},
    {"name": "Rolly",   "age": 0.5}
  ]
}

About

DSL for writing object trees serializes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages