class EventRouter::Serializers::Json
Constants
- EVENT_CLASS_ATTRIBUTE_NAME
Public Class Methods
deserialize(payload)
click to toggle source
# File lib/event_router/serializers/json.rb, line 20 def deserialize(payload) object = JSON.parse(payload) return object unless object.is_a?(Hash) return object unless object.key?(EVENT_CLASS_ATTRIBUTE_NAME) event_class = object.delete(EVENT_CLASS_ATTRIBUTE_NAME) event_instance = const_get(event_class).new object.each do |attribute, value| event_instance.instance_variable_set(:"@#{attribute}", value) end event_instance end
serialize(object)
click to toggle source
# File lib/event_router/serializers/json.rb, line 11 def serialize(object) return JSON.generate(object) unless object.is_a?(EventRouter::Event) attributes = object.to_h attributes[EVENT_CLASS_ATTRIBUTE_NAME] = object.class.name JSON.generate(attributes) end