class Synapse::EventStore::Mongo::DocumentPerEventStrategy

Storage strategy that stores each event as its own document

Public Instance Methods

create_documents(type_identifier, events) click to toggle source

@param [String] type_identifier Type identifier for the aggregate @param [Array] events Domain events to be committed @return [Array]

# File lib/synapse/event_store/mongo/per_event_strategy.rb, line 9
def create_documents(type_identifier, events)
  documents = Array.new

  events.each do |event|
    document = EventDocument.new
    document.from_event event, type_identifier, @serializer

    documents.push document.to_hash
  end

  documents
end
extract_events(hash, aggregate_id) click to toggle source

@param [Hash] hash @param [Object] aggregate_id @return [Array]

# File lib/synapse/event_store/mongo/per_event_strategy.rb, line 25
def extract_events(hash, aggregate_id)
  document = EventDocument.new
  document.from_hash(hash).to_events(aggregate_id, @serializer, @upcaster_chain)
end