Class: Sumac::Message::Exchange::CallRequest
- Inherits:
-
Base
- Object
- Sumac::Message
- Sumac::Message::Exchange
- Base
- Sumac::Message::Exchange::CallRequest
- Includes:
- ID
- Defined in:
- lib/sumac/message/exchange/call_request.rb
Instance Method Summary collapse
- #arguments ⇒ Object
- #arguments=(new_arguments) ⇒ Object
- #exposed_object ⇒ Object
- #exposed_object=(new_exposed_object) ⇒ Object
-
#initialize(connection) ⇒ CallRequest
constructor
A new instance of CallRequest.
- #invert_orgin ⇒ Object
- #method_name ⇒ Object
- #method_name=(new_method_name) ⇒ Object
- #parse_json_structure(json_structure) ⇒ Object
- #to_json_structure ⇒ Object
Methods included from ID
Methods inherited from Base
Methods inherited from Sumac::Message::Exchange
Methods inherited from Sumac::Message
Constructor Details
#initialize(connection) ⇒ CallRequest
Returns a new instance of CallRequest.
7 8 9 10 11 12 13 |
# File 'lib/sumac/message/exchange/call_request.rb', line 7 def initialize(connection) super @exposed_object = nil @child = nil @method_name = nil @arguments = nil end |
Instance Method Details
#arguments ⇒ Object
68 69 70 71 |
# File 'lib/sumac/message/exchange/call_request.rb', line 68 def arguments raise MessageError unless setup? @arguments.map(&:to_native_object) end |
#arguments=(new_arguments) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/sumac/message/exchange/call_request.rb', line 73 def arguments=(new_arguments) raise MessageError unless new_arguments.is_a?(Array) @arguments = new_arguments.map do |native_argument| Object.from_native_object(@connection, native_argument) end end |
#exposed_object ⇒ Object
45 46 47 48 |
# File 'lib/sumac/message/exchange/call_request.rb', line 45 def exposed_object raise MessageError unless setup? @exposed_object.to_native_object end |
#exposed_object=(new_exposed_object) ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/sumac/message/exchange/call_request.rb', line 50 def exposed_object=(new_exposed_object) unless new_exposed_object.is_a?(RemoteObject) || new_exposed_object.is_a?(RemoteObjectChild) || new_exposed_object.respond_to?(:__sumac_exposed_object__) raise MessageError end @exposed_object = Object.from_native_object(@connection, new_exposed_object) end |
#invert_orgin ⇒ Object
80 81 82 83 84 85 |
# File 'lib/sumac/message/exchange/call_request.rb', line 80 def invert_orgin raise MessageError unless setup? @exposed_object.invert_orgin @arguments.each { |argument| argument.invert_orgin if argument.respond_to?(:invert_orgin) } nil end |
#method_name ⇒ Object
58 59 60 61 |
# File 'lib/sumac/message/exchange/call_request.rb', line 58 def method_name raise MessageError unless setup? @method_name end |
#method_name=(new_method_name) ⇒ Object
63 64 65 66 |
# File 'lib/sumac/message/exchange/call_request.rb', line 63 def method_name=(new_method_name) raise MessageError unless new_method_name.is_a?(String) @method_name = new_method_name end |
#parse_json_structure(json_structure) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/sumac/message/exchange/call_request.rb', line 15 def parse_json_structure(json_structure) raise MessageError unless json_structure.is_a?(Hash) && json_structure['message_type'] == 'exchange' && json_structure['exchange_type'] == 'call_request' raise MessageError unless json_structure['id'].is_a?(Integer) @id = json_structure['id'] exposed_object = Object.from_json_structure(@connection, json_structure['exposed_object']) raise MessageError unless exposed_object.is_a?(Object::Exposed) || exposed_object.is_a?(Object::ExposedChild) @exposed_object = exposed_object raise MessageError unless json_structure['method_name'].is_a?(String) @method_name = json_structure['method_name'] raise MessageError unless json_structure['arguments'].is_a?(Array) @arguments = json_structure['arguments'].map do |argument_json_structure| Object.from_json_structure(@connection, argument_json_structure) end nil end |
#to_json_structure ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/sumac/message/exchange/call_request.rb', line 33 def to_json_structure raise unless setup? { 'message_type' => 'exchange', 'exchange_type' => 'call_request', 'id' => @id, 'exposed_object' => @exposed_object.to_json_structure, 'method_name' => @method_name, 'arguments' => @arguments.map(&:to_json_structure) } end |