Sha256: f07d293442201eadab26f546760692cc4edd5f1a2a0a78235db4e604d66e78de

Contents?: true

Size: 808 Bytes

Versions: 4

Compression:

Stored size: 808 Bytes

Contents

require 'protobuf/rpc/rpc.pb'

module Protobuf
  module Rpc
    ClientError = Struct.new("ClientError", :code, :message)

    # Base PbError class for client and server errors
    class PbError < StandardError
      attr_reader :error_type

      def initialize(message = 'An unknown RpcError occurred', error_type = 'RPC_ERROR')
        @error_type = error_type.is_a?(String) ? ::Protobuf::Socketrpc::ErrorReason.const_get(error_type) : error_type
        super message
      end

      def encode(args = {})
        to_response(args).encode
      end

      def to_response(args = {})
        ::Protobuf::Socketrpc::Response.new({ :error => message, :error_reason => error_type }.merge(args))
      end
    end
  end
end

require 'protobuf/rpc/error/server_error'
require 'protobuf/rpc/error/client_error'

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
protobuf-3.10.9 lib/protobuf/rpc/error.rb
protobuf-3.10.8 lib/protobuf/rpc/error.rb
protobuf-3.10.7 lib/protobuf/rpc/error.rb
protobuf-3.10.6 lib/protobuf/rpc/error.rb