class Ably::Exceptions::BaseAblyException
Base Ably
exception class that contains status and code values used by Ably
Refer to github.com/ably/ably-common/blob/main/protocol/errors.json
@!attribute [r] message
@return [String] Error message from Ably
@!attribute [r] status
@return [String] HTTP status code of error
@!attribute [r] code
@return [String] Ably specific error code
Attributes
Public Class Methods
Source
# File lib/ably/exceptions.rb, line 19 def initialize(message, status = nil, code = nil, base_exception = nil, options = {}) super message @base_exception = base_exception @status = status @status ||= base_exception.status if base_exception && base_exception.respond_to?(:status) @status ||= options[:fallback_status] @code = code @code ||= base_exception.code if base_exception && base_exception.respond_to?(:code) @code ||= options[:fallback_code] @request_id ||= options[:request_id] end
Calls superclass method
Public Instance Methods
Source
# File lib/ably/exceptions.rb, line 46 def as_json(*args) { message: "#{self.class}: #{message}", status: @status, code: @code }.delete_if { |key, val| val.nil? } end
Source
# File lib/ably/exceptions.rb, line 32 def to_s message = [super] if status || code additional_info = [] additional_info << "code: #{code}" if code additional_info << "http status: #{status}" if status additional_info << "base exception: #{@base_exception.class}" if @base_exception additional_info << "request_id: #{request_id}" if request_id message << "(#{additional_info.join(', ')})" message << "-> see https://help.ably.io/error/#{code} for help" if code end message.join(' ') end
Calls superclass method