class EvilEvents::Core::Events::Serializers::Hash::Engines::Native
@api private @since 0.4.0
Public Instance Methods
dump(serialization_state)
click to toggle source
@param serialization_state [Base::EventSerializationState] @return [::Hash]
@since 0.4.0 @api private
# File lib/evil_events/core/events/serializers/hash/engines/native.rb, line 12 def dump(serialization_state) { id: serialization_state.id, type: serialization_state.type, payload: serialization_state.payload, metadata: serialization_state.metadata } end
load(hash)
click to toggle source
@param hash [::Hash] @raise [EvilEvents::SerializationEngineError] @return [EventSerializationState]
@since 0.4.0 @api private
# File lib/evil_events/core/events/serializers/hash/engines/native.rb, line 27 def load(hash) begin event_id = hash[:id] || hash['id'] event_type = hash[:type] || hash['type'] event_payload = hash[:payload] || hash['payload'] event_metadata = hash[:metadata] || hash['metadata'] rescue NoMethodError, TypeError, ArgumentError raise EvilEvents::SerializationEngineError end restore_serialization_state( id: event_id, type: event_type, payload: (symbolized_hash(event_payload) if event_payload), metadata: (symbolized_hash(event_metadata) if event_metadata) ) end
Private Instance Methods
symbolized_hash(hash)
click to toggle source
@param hash [::Hash] @return [::Hash]
@since 0.1.0
# File lib/evil_events/core/events/serializers/hash/engines/native.rb, line 51 def symbolized_hash(hash) hash.each_pair.each_with_object({}) do |(key, value), result_hash| result_hash[key.to_sym] = value end end