Class: EventSourcery::EventBodySerializer
- Inherits:
-
Object
- Object
- EventSourcery::EventBodySerializer
- Defined in:
- lib/event_sourcery/event_body_serializer.rb
Overview
EventBodySerializer is used for serializing event bodies when persisting events.
Defined Under Namespace
Modules: ArraySerializer, HashSerializer, IdentitySerializer
Class Method Summary collapse
-
.serialize(event_body, serializer: EventSourcery.config.event_body_serializer) ⇒ Object
Serialize the given event body, with the default or the provided, serializer.
Instance Method Summary collapse
-
#add(type, serializer = nil, &block_serializer) ⇒ Object
Register a serializer (instance or block) for the specified type.
-
#initialize ⇒ EventBodySerializer
constructor
A new instance of EventBodySerializer.
-
#serialize(object) ⇒ Object
Serialize the given event body.
Constructor Details
#initialize ⇒ EventBodySerializer
Returns a new instance of EventBodySerializer.
13 14 15 |
# File 'lib/event_sourcery/event_body_serializer.rb', line 13 def initialize @serializers = Hash.new(IdentitySerializer) end |
Class Method Details
.serialize(event_body, serializer: EventSourcery.config.event_body_serializer) ⇒ Object
Serialize the given event body, with the default or the provided, serializer
8 9 10 11 |
# File 'lib/event_sourcery/event_body_serializer.rb', line 8 def self.serialize(event_body, serializer: EventSourcery.config.event_body_serializer) serializer.serialize(event_body) end |
Instance Method Details
#add(type, serializer = nil, &block_serializer) ⇒ Object
Register a serializer (instance or block) for the specified type
22 23 24 25 |
# File 'lib/event_sourcery/event_body_serializer.rb', line 22 def add(type, serializer = nil, &block_serializer) @serializers[type] = serializer || block_serializer self end |
#serialize(object) ⇒ Object
Serialize the given event body
30 31 32 33 |
# File 'lib/event_sourcery/event_body_serializer.rb', line 30 def serialize(object) serializer = @serializers[object.class] serializer.call(object, &method(:serialize)) end |