class Wamp::Client::Message::Result

Result Result of a call as returned by Dealer to Caller. Formats:

[RESULT, CALL.Request|id, Details|dict]
[RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list]
[RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list, YIELD.ArgumentsKw|dict]

Attributes

call_request[RW]
details[RW]
yield_arguments[RW]
yield_argumentskw[RW]

Public Class Methods

new(call_request, details, yield_arguments=nil, yield_argumentskw=nil) click to toggle source
# File lib/wamp/client/message.rb, line 727
def initialize(call_request, details, yield_arguments=nil, yield_argumentskw=nil)

  self.class.check_id('call_request', call_request)
  self.class.check_dict('details', details)
  self.class.check_list('yield_arguments', yield_arguments, true)
  self.class.check_dict('yield_argumentskw', yield_argumentskw, true)

  self.call_request = call_request
  self.details = details
  self.yield_arguments = yield_arguments
  self.yield_argumentskw = yield_argumentskw

end
parse(params) click to toggle source
# File lib/wamp/client/message.rb, line 745
def self.parse(params)

  self.check_gte('params list', 3, params.count)
  self.check_equal('message type', self.type, params[0])

  params.shift
  self.new(*params)

end
type() click to toggle source
# File lib/wamp/client/message.rb, line 741
def self.type
  Types::RESULT
end

Public Instance Methods

payload() click to toggle source
# File lib/wamp/client/message.rb, line 755
def payload
  self.yield_arguments ||= []
  self.yield_argumentskw ||= {}

  payload = [self.class.type]
  payload.push(self.call_request)
  payload.push(self.details)

  return payload if (self.yield_arguments.empty? and self.yield_argumentskw.empty?)
  payload.push(self.yield_arguments)

  return payload if (self.yield_argumentskw.empty?)
  payload.push(self.yield_argumentskw)

  payload
end
to_s() click to toggle source
# File lib/wamp/client/message.rb, line 772
def to_s
  'RESULT > ' + self.payload.to_s
end