jstotz/jstreams

View on GitHub
lib/jstreams/serializer.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

# rubocop:disable Lint/UnusedMethodArgument

module Jstreams
  ##
  # @abstract
  class Serializer
    ##
    # Serialize a message from a hash into a string
    #
    # @param [Hash] message Message to serialize
    # @param [String] stream Destination stream name
    #
    # @return [String] The serialized message
    #
    # @abstract
    def serialize(message, stream)
      raise NotImplementedError
    end

    ##
    # Deserialize a message from a string into a hash
    #
    # @param [String] message Message to deserialize
    # @param [String] stream Source stream name
    #
    # @return [Hash] The deserialized message
    #
    # @abstract
    def deserialize(message, stream)
      raise NotImplementedError
    end
  end
end

# rubocop:enable Lint/UnusedMethodArgument