class Synapse::Serialization::SerializationAwareEventMessage
Decorator for an event message that adds serialization awareness
Any serialization that occurs on the metadata or payload of this message will be cached so that if a message is serialized more than once, the serialization process will only occur once.
Public Class Methods
decorate(message)
click to toggle source
@param [EventMessage] message @return [SerializationAwareEventMessage]
# File lib/synapse/serialization/message/serialization_aware_message.rb, line 14 def self.decorate(message) if message.is_a? SerializationAware return message end self.new message end
new(message)
click to toggle source
@param [EventMessage] message @return [undefined]
# File lib/synapse/serialization/message/serialization_aware_message.rb, line 24 def initialize(message) @message = message @cache = SerializedObjectCache.new message end
Public Instance Methods
and_metadata(additional_metadata)
click to toggle source
@see Message#and_metadata
@param [Hash] additional_metadata @return [SerializationAwareEventMessage]
# File lib/synapse/serialization/message/serialization_aware_message.rb, line 32 def and_metadata(additional_metadata) new_message = @message.and_metadata additional_metadata if new_message.equal? @message return self end self.class.new new_message end
with_metadata(replacement_metadata)
click to toggle source
@see Message#with_metadata
@param [Hash] replacement_metadata @return [SerializationAwareEventMessage]
# File lib/synapse/serialization/message/serialization_aware_message.rb, line 44 def with_metadata(replacement_metadata) new_message = @message.with_metadata replacement_metadata if new_message.equal? @message return self end self.class.new new_message end