class OskieRpc::Message

Attributes

command[RW]
params[RW]

Public Class Methods

new(command = '', params = {}) click to toggle source
# File lib/oskie_rpc/message.rb, line 6
def initialize(command = '', params = {})
  @command = command
  @params = params
  @message_id = SecureRandom.uuid
end

Public Instance Methods

dump() click to toggle source
# File lib/oskie_rpc/message.rb, line 22
def dump
  validate!

  {
    'type' => 'rpcMessage',
    'message' => {
      'command' => @command,
      'params' => @params,
      'messageId' => @message_id
    }
  }
end
load(payload) click to toggle source
# File lib/oskie_rpc/message.rb, line 12
def load(payload)
  @command = payload['message']['command']
  @params = payload['message']['params']
  @message_id = payload['message']['messageId']

  validate!

  self
end
validate!() click to toggle source
# File lib/oskie_rpc/message.rb, line 35
def validate!
  @command.is_a?(String) || raise(ValidationError, "Command is not a string.")
  @params.is_a?(Hash) || raise(ValidationError, "Params is not a hash.")
  @message_id.is_a?(String) || raise(ValidationError, "Message ID is not a string.")

  nil
end