Class: RubyEventStore::Mappers::Default

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_event_store/mappers/default.rb

Instance Method Summary collapse

Constructor Details

#initialize(serializer: YAML, events_class_remapping: {}) ⇒ Default

Returns a new instance of Default.



7
8
9
10
# File 'lib/ruby_event_store/mappers/default.rb', line 7

def initialize(serializer: YAML, events_class_remapping: {})
  @serializer = serializer
  @events_class_remapping = events_class_remapping
end

Instance Method Details

#event_to_serialized_record(domain_event) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/ruby_event_store/mappers/default.rb', line 12

def event_to_serialized_record(domain_event)
  SerializedRecord.new(
    event_id:         domain_event.event_id,
    metadata:   @serializer.dump(domain_event.),
    data:       @serializer.dump(domain_event.data),
    event_type: domain_event.class.name
  )
end

#serialized_record_to_event(record) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/ruby_event_store/mappers/default.rb', line 21

def serialized_record_to_event(record)
  event_type = @events_class_remapping.fetch(record.event_type) { record.event_type }
  ActiveSupport::Inflector.constantize(event_type).new(
    event_id: record.event_id,
    metadata: @serializer.load(record.),
    data:     @serializer.load(record.data)
  )
end