class Sumac::Message::Object::ExposedChild
Public Class Methods
new(connection)
click to toggle source
Calls superclass method
Sumac::Message::new
# File lib/sumac/message/object/exposed_child.rb, line 6 def initialize(connection) super @parent = nil @key = nil end
Public Instance Methods
invert_orgin()
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 71 def invert_orgin raise MessageError unless setup? @parent.invert_orgin nil end
parse_json_structure(json_structure)
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 12 def parse_json_structure(json_structure) raise MessageError unless json_structure.is_a?(::Hash) && json_structure['message_type'] == 'object' && json_structure['object_type'] == 'exposed_child' @parent = Exposed.from_json_structure(@connection, json_structure['parent']) key = json_structure['key'] raise MessageError unless key.is_a?(::String) || key.is_a?(::Float) || key.is_a?(::Integer) @key = key nil end
parse_native_object(native_object)
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 23 def parse_native_object(native_object) unless native_object.is_a?(RemoteObjectChild) || (native_object.respond_to?(:__sumac_exposed_object__) && native_object.respond_to?(:__parent__)) raise MessageError end begin native_parent = native_object.__parent__ rescue raise MessageError end @parent = Exposed.from_native_object(@connection, native_parent) begin key = native_object.__key__ rescue raise MessageError end raise unless key.is_a?(::String) || key.is_a?(::Float) || key.is_a?(::Integer) @key = key nil end
to_json_structure()
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 44 def to_json_structure raise MessageError unless setup? { 'message_type' => 'object', 'object_type' => 'exposed_child', 'parent' => @parent.to_json_structure, 'key' => @key } end
to_native_object()
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 54 def to_native_object raise MessageError unless setup? native_parent = @parent.to_native_object case native_parent when ExposedObject begin native_child = native_parent.__child__(@key) rescue raise MessageError end raise unless native_child.is_a?(ExposedObjectChild) when RemoteObject native_child = RemoteObjectChild.new(@connection, native_parent, @key) end native_child end
Private Instance Methods
setup?()
click to toggle source
# File lib/sumac/message/object/exposed_child.rb, line 79 def setup? @parent != nil && @key != nil end