Class: Wampproto::Message::Invocation

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

Overview

abort message

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

type, #type

Constructor Details

#initialize(request_id, registration_id, details, *args, **kwargs) ⇒ Invocation

Returns a new instance of Invocation.



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

def initialize(request_id, registration_id, details, *args, **kwargs)
  super()
  @request_id = Validate.int!("Request Id", request_id)
  @registration_id = Validate.int!("Registration Id", registration_id)
  @details = Validate.hash!("Details", details)
  @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/invocation.rb', line 7

def args
  @args
end

#detailsObject (readonly)

Returns the value of attribute details.



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

def details
  @details
end

#kwargsObject (readonly)

Returns the value of attribute kwargs.



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

def kwargs
  @kwargs
end

#registration_idObject (readonly)

Returns the value of attribute registration_id.



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

def registration_id
  @registration_id
end

#request_idObject (readonly)

Returns the value of attribute request_id.



7
8
9
# File 'lib/wampproto/message/invocation.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/invocation.rb', line 25

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

Instance Method Details

#marshalObject



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

def marshal
  @payload = [Type::INVOCATION, request_id, registration_id, details]
  @payload << args if kwargs.any? || args.any?
  @payload << kwargs if kwargs.any?
  @payload
end