class EvilEvents::Core::Events::Serializers::MessagePack::Engines::Mpacker
@api private @since 0.5.0
Attributes
factory[R]
@return [::MessagePack::Factory]
@api private @since 0.5.0
Public Class Methods
new(config)
click to toggle source
@param config [EvilEvents::Core::Events::Serializers::MessagePack::Config] @raise [EvilEvents::SerializationEngineError]
@api private @since 0.5.0
# File lib/evil_events/plugins/mpacker_engine/mpacker.rb, line 12 def initialize(config) configurator = config.settings.options[:mpacker][:configurator] raise EvilEvents::SerializationEngineError unless configurator.is_a?(Proc) @factory = ::MessagePack::Factory.new.tap { |factory| configurator.call(factory) } end
Public Instance Methods
dump(serialization_state)
click to toggle source
@param serialization_state [Base::EventSerializationState] @return [String]
@since 0.5.0 @api private
# File lib/evil_events/plugins/mpacker_engine/mpacker.rb, line 23 def dump(serialization_state) packer.pack( id: serialization_state.id, type: serialization_state.type, payload: serialization_state.payload, metadata: serialization_state.metadata ).to_str end
load(message)
click to toggle source
@param message [String] @raise [EvilEvents::SerializationEngineError] @return [EventSerializationState]
@since 0.5.0 @api private
# File lib/evil_events/plugins/mpacker_engine/mpacker.rb, line 38 def load(message) begin event_data = unpacker.feed(message).unpack raise EvilEvents::SerializationEngineError unless event_data.is_a?(::Hash) rescue ::MessagePack::UnpackError, ArgumentError, TypeError raise EvilEvents::SerializationEngineError end restore_serialization_state( id: event_data[:id], type: event_data[:type], payload: event_data[:payload], metadata: event_data[:metadata] ) end
Private Instance Methods
packer()
click to toggle source
@return [::MessagePack::Packer]
@api private @since 0.5.0
# File lib/evil_events/plugins/mpacker_engine/mpacker.rb, line 66 def packer factory.packer end
unpacker()
click to toggle source
@return [::MessagePack::Unpacker]
@api private @since 0.5.0
# File lib/evil_events/plugins/mpacker_engine/mpacker.rb, line 74 def unpacker factory.unpacker(symbolize_keys: true) end