Class: Wampproto::Message::Call

Inherits:
Base
  • Object
show all
Defined in:
lib/wampproto/message/call.rb

Overview

wamp call message

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

type, #type

Constructor Details

#initialize(request_id, options, procedure, *args, **kwargs) ⇒ Call

Returns a new instance of Call.



9
10
11
12
13
14
15
16
# File 'lib/wampproto/message/call.rb', line 9

def initialize(request_id, options, procedure, *args, **kwargs)
  super()
  @request_id = Validate.int!("Request Id", request_id)
  @options    = Validate.hash!("Options", options)
  @procedure  = Validate.string!("Procedure", procedure)
  @args       = Validate.array!("Arguments", args)
  @kwargs     = Validate.hash!("Keyword Arguments", kwargs)
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



7
8
9
# File 'lib/wampproto/message/call.rb', line 7

def args
  @args
end

#kwargsObject (readonly)

Returns the value of attribute kwargs.



7
8
9
# File 'lib/wampproto/message/call.rb', line 7

def kwargs
  @kwargs
end

#optionsObject (readonly)

Returns the value of attribute options.



7
8
9
# File 'lib/wampproto/message/call.rb', line 7

def options
  @options
end

#procedureObject (readonly)

Returns the value of attribute procedure.



7
8
9
# File 'lib/wampproto/message/call.rb', line 7

def procedure
  @procedure
end

#request_idObject (readonly)

Returns the value of attribute request_id.



7
8
9
# File 'lib/wampproto/message/call.rb', line 7

def request_id
  @request_id
end

Class Method Details

.parse(wamp_message) ⇒ Object



25
26
27
28
29
30
# File 'lib/wampproto/message/call.rb', line 25

def self.parse(wamp_message)
  _type, request_id, options, procedure, args, kwargs = wamp_message
  args   ||= []
  kwargs ||= {}
  new(request_id, options, procedure, *args, **kwargs)
end

Instance Method Details

#marshalObject



18
19
20
21
22
23
# File 'lib/wampproto/message/call.rb', line 18

def marshal
  @payload = [Type::CALL, request_id, options, procedure]
  @payload << args if kwargs.any? || args.any?
  @payload << kwargs if kwargs.any?
  @payload
end