class Synapse::EventStore::Mongo::DocumentPerCommitStrategy::EventDocument
Mongo
document that represents a single event as part of a commit document
Attributes
id[R]
@return [String]
sequence_number[R]
@return [Integer]
timestamp[R]
@return [Time]
Public Instance Methods
from_event(event, serializer)
click to toggle source
@param [EventMessage] event @param [Serializer] serializer @return [EventDocument]
# File lib/synapse/event_store/mongo/per_commit_strategy.rb, line 162 def from_event(event, serializer) serialization_target = String if serializer.can_serialize_to? Hash serialization_target = Hash end serialized_metadata = serializer.serialize_metadata event, serialization_target serialized_payload = serializer.serialize_payload event, serialization_target @id = event.id @metadata = serialized_metadata.content @payload = serialized_payload.content @payload_type = serialized_payload.type.name @payload_revision = serialized_payload.type.revision @timestamp = event.timestamp @sequence_number = event.sequence_number self end
from_hash(hash)
click to toggle source
@param [Hash] hash @return [EventDocument]
# File lib/synapse/event_store/mongo/per_commit_strategy.rb, line 184 def from_hash(hash) hash.symbolize_keys! @id = hash.fetch :id @metadata = hash.fetch :metadata @payload = hash.fetch :payload @payload_type = hash.fetch :payload_type @payload_revision = hash.fetch :payload_revision @timestamp = hash.fetch :timestamp @sequence_number = hash.fetch :sequence_number self end
metadata()
click to toggle source
@return [SerializedObject]
# File lib/synapse/event_store/mongo/per_commit_strategy.rb, line 149 def metadata Serialization::SerializedMetadata.new @metadata, @metadata.class end
payload()
click to toggle source
@return [SerializedObject]
# File lib/synapse/event_store/mongo/per_commit_strategy.rb, line 154 def payload Serialization::SerializedObject.new @payload, @payload.class, Serialization::SerializedType.new(@payload_type, @payload_revision) end
to_hash()
click to toggle source
@return [Hash]
# File lib/synapse/event_store/mongo/per_commit_strategy.rb, line 199 def to_hash { id: @id, metadata: @metadata, payload: @payload, payload_type: @payload_type, payload_revision: @payload_revision, timestamp: @timestamp, sequence_number: @sequence_number } end