lib/eventq/eventq_base/serialization_providers/oj_serialization_provider.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module EventQ
  module SerializationProviders
    class OjSerializationProvider

      def initialize
        @json_serializer = EventQ::SerializationProviders::JsonSerializationProvider.new
      end

      def serialize(object)
        Oj.dump(object, mode: :object)
      end

      def deserialize(json)
        begin
          Oj.load(json)
        rescue Oj::ParseError, ArgumentError
          EventQ.log(:debug, "[#{self.class}] - Failed to deserialize using Oj, falling back to JsonSerializationProvider.")
          @json_serializer.deserialize(json)
        end
      end
    end
  end
end