class RabbitRPC::Message

Attributes

args[R]
method_name[R]

Public Class Methods

generate_id() click to toggle source
# File lib/rabbit_rpc/message.rb, line 29
def self.generate_id
  SecureRandom.uuid
end
new(method_name, *args) click to toggle source
# File lib/rabbit_rpc/message.rb, line 8
def initialize(method_name, *args)
  @method_name = method_name
  @args        = args
end
unpack(message) click to toggle source

Unpacks a serialized message to a hash containing the method and its args. This method needs to be modified if a serializer other than MessagePack is to be used.

Returns a Hash

# File lib/rabbit_rpc/message.rb, line 25
def self.unpack(message)
  MessagePack.unpack message
end

Public Instance Methods

pack() click to toggle source

Squeezes and serializes the RPC method name and arguments

Returns the packed and serialized string

# File lib/rabbit_rpc/message.rb, line 16
def pack
  serialize(method: @method_name, args: @args)
end

Private Instance Methods

serialize(message) click to toggle source

Private: Serialize the message. Currently using message pack. The implementation can be changed in order to use some other serializer.

Returns the serialized String

# File lib/rabbit_rpc/message.rb, line 39
def serialize(message)
  message.to_msgpack
end