Sha256: 1fd3ddcf2cc36fff2cff01161ad5f2acd7850f555f19bd35e77ce670d5c49a87

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

# Toplevel Pubnub module.
module Pubnub
  # Some custom pubnub errors
  class Error < StandardError
    attr_reader :env, :message

    def initialize(env = {})
      raise ::ArgumentError, 'Env passed to Pubnub::Error must be a hash' unless env.instance_of? Hash

      @env = env
      @message = ''

      build_message

      log_error
    end

    private

    def build_message
      insert_value 'operation', @env[:operation]
      insert_value 'request', @env[:request]
      insert_value 'env', @env[:env]
      insert_value 'app', @env[:app]
      insert_value 'response', @env[:response]
      insert_value 'error type', @env[:error]
      insert_value 'error message', @env[:message]
      insert_value 'error backtrace', backtrace
    end

    def insert_value(key, val)
      @message << "#{key.upcase}: #{val}\n" if val
    end

    def log_error
      Pubnub.logger.error('Pubnub') { @message } if Pubnub.logger
    end
  end

  class JSONParseError < Error
  end

  class InitializationError < Error
  end

  class ArgumentError < Error
  end

  class RequestError < Error
  end

  class ResponseError < Error
  end

  class UnknownCryptorError < Error
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pubnub-5.5.0 lib/pubnub/error.rb
pubnub-5.4.0 lib/pubnub/error.rb
pubnub-5.3.5 lib/pubnub/error.rb
pubnub-5.3.4 lib/pubnub/error.rb
pubnub-5.3.3 lib/pubnub/error.rb
pubnub-5.3.2 lib/pubnub/error.rb
pubnub-5.3.1 lib/pubnub/error.rb
pubnub-5.3.0 lib/pubnub/error.rb