Sha256: 44cef62b15e9458df2050a529dd0a63358984e538ceb6d458fdda3ce2ebdb979

Contents?: true

Size: 691 Bytes

Versions: 3

Compression:

Stored size: 691 Bytes

Contents

module RailwayIpc
  module Rabbitmq
    class Payload
      attr_reader :type, :message

      def self.encode(message)
        type = message.class.to_s
        message = Base64.encode64(message.class.encode(message))
        new(type, message).to_json
      end

      def self.decode(message)
        message = JSON.parse(message)
        type = message["type"]
        message = Base64.decode64(message["encoded_message"])
        new(type, message)
      end

      def initialize(type, message)
        @type = type
        @message = message
      end

      def to_json
        {
          type: type,
          encoded_message: message
        }.to_json
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
railway-ipc-0.1.3 lib/railway_ipc/rabbitmq/payload.rb
railway-ipc-0.1.2 lib/railway_ipc/rabbitmq/payload.rb
railway-ipc-0.1.1 lib/railway_ipc/rabbitmq/payload.rb