Sha256: b1eb4a88bc1c27c2f4b36ff3b455d4fe07fe260eda3ee83b1a7a036ecea72a05
Contents?: true
Size: 1008 Bytes
Versions: 17
Compression:
Stored size: 1008 Bytes
Contents
# frozen_string_literal: true module RailwayIpc module Rabbitmq class Payload attr_reader :type, :message def self.encode(message) type = message.class.to_s begin message = Base64.encode64(message.class.encode(message)) # TODO: also need to rescue Google::Protobuf::TypeError rescue NoMethodError raise RailwayIpc::InvalidProtobuf.new("Message #{message} is not a valid protobuf") end 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 # rubocop:disable Lint/ToJSON def to_json { type: type, encoded_message: message }.to_json end # rubocop:enable Lint/ToJSON end end end
Version data entries
17 entries across 17 versions & 1 rubygems