Module: PlainSerializer::Serializable::ClassMethods
- Defined in:
- lib/plain_serializer/serializable.rb
Overview
Defines required methods for base class
Instance Method Summary collapse
- #define_collection_serializer(name, klass) ⇒ Object
- #define_serializer(name, klass) ⇒ Object
- #serializers ⇒ Object
- #setup(*args) ⇒ Object
Instance Method Details
#define_collection_serializer(name, klass) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/plain_serializer/serializable.rb', line 44 def define_collection_serializer(name, klass) serializers[name] = klass define_method(name) do |entity| serializer(name).serialize_collection(entity.send(name)) end end |
#define_serializer(name, klass) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/plain_serializer/serializable.rb', line 36 def define_serializer(name, klass) serializers[name] = klass define_method(name) do |entity| serializer(name).serialize(entity.send(name)) end end |
#serializers ⇒ Object
52 53 54 |
# File 'lib/plain_serializer/serializable.rb', line 52 def serializers @serializers ||= {} end |
#setup(*args) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/plain_serializer/serializable.rb', line 24 def setup(*args) = Helpers.(args) attributes = args + .keys new(*attributes).tap do |instance| .each do |serializer_name, opts| instance.setup_serializer(serializer_name, opts) end end end |