class EvilEvents::Core::Events::Serializers::JSON::Unpacker

@api private @since 0.4.0

Public Instance Methods

call(serialized_event) click to toggle source

@param serialized_event [String] @raise [EvilEvents::JSONDeserializationError] @return [EvilEvents::Core::Events::AbstractEvent]

@see Base::DataTransformer

@api private @since 0.4.0

# File lib/evil_events/core/events/serializers/json/unpacker.rb, line 16
def call(serialized_event)
  raise EvilEvents::JSONDeserializationError unless serialized_event.is_a?(String)

  begin
    serialization_state = engine.load(serialized_event)
  rescue EvilEvents::SerializationEngineError
    raise EvilEvents::JSONDeserializationError
  end

  raise EvilEvents::JSONDeserializationError unless serialization_state.valid?

  restore_event_instance(serialization_state)
end