class Sumac::Message::Object::Exception
Public Class Methods
map()
click to toggle source
# File lib/sumac/message/object/exception.rb, line 6 def self.map @map ||= [ ['no_method_exception', NoMethodError], ['argument_exception', ArgumentError], ['stale_object_exception', StaleObjectError], ['unexposable_object_exception', UnexposableObjectError] ] end
new(connection)
click to toggle source
Calls superclass method
Sumac::Message::new
# File lib/sumac/message/object/exception.rb, line 16 def initialize(connection) super @type = nil @message = nil end
Public Instance Methods
parse_json_structure(json_structure)
click to toggle source
# File lib/sumac/message/object/exception.rb, line 22 def parse_json_structure(json_structure) raise MessageError unless json_structure.is_a?(::Hash) && json_structure['message_type'] == 'object' && json_structure['object_type'] == 'exception' raise MessageError if self.class.map.assoc(json_structure['type']) == nil @type = json_structure['type'] if json_structure['message'] raise MessageError unless json_structure['message'].is_a?(::String) @message = json_structure['message'] end nil end
parse_native_object(native_object)
click to toggle source
# File lib/sumac/message/object/exception.rb, line 35 def parse_native_object(native_object) raise MessageError if self.class.map.rassoc(native_object.class) == nil @type = self.class.map.rassoc(native_object.class)[0] @message = native_object.message nil end
to_json_structure()
click to toggle source
# File lib/sumac/message/object/exception.rb, line 42 def to_json_structure raise MessageError unless setup? { 'message_type' => 'object', 'object_type' => 'exception', 'type' => @type, 'message' => @message } end
to_native_object()
click to toggle source
# File lib/sumac/message/object/exception.rb, line 52 def to_native_object raise MessageError unless setup? self.class.map.assoc(@type)[1].new(@message) end
Private Instance Methods
setup?()
click to toggle source
# File lib/sumac/message/object/exception.rb, line 59 def setup? @type != nil end