Sha256: e60fb2a15080318ddb9a112f404a0600b63bd845616f855e73473779847afa78

Contents?: true

Size: 1.11 KB

Versions: 29

Compression:

Stored size: 1.11 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
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
pubnub-5.2.2 lib/pubnub/error.rb
pubnub-5.2.1 lib/pubnub/error.rb
pubnub-5.2.0 lib/pubnub/error.rb
pubnub-5.1.2 lib/pubnub/error.rb
pubnub-5.1.1 lib/pubnub/error.rb
pubnub-5.1.0 lib/pubnub/error.rb
pubnub-5.0.0 lib/pubnub/error.rb
pubnub-4.8.0 lib/pubnub/error.rb
pubnub-4.7.1 lib/pubnub/error.rb
pubnub-4.7.0 lib/pubnub/error.rb
pubnub-4.6.2 lib/pubnub/error.rb
pubnub-4.6.1 lib/pubnub/error.rb
pubnub-4.6.0 lib/pubnub/error.rb
pubnub-4.5.0 lib/pubnub/error.rb
pubnub-4.4.0 lib/pubnub/error.rb
pubnub-4.3.0 lib/pubnub/error.rb
pubnub-4.2.7 lib/pubnub/error.rb
pubnub-4.2.6 lib/pubnub/error.rb
pubnub-4.2.5 lib/pubnub/error.rb
pubnub-4.2.4 lib/pubnub/error.rb