Sha256: 73265274e3b066994eb09274753fd19dd54d3de0407d0677be47c5374a0f6547

Contents?: true

Size: 1.43 KB

Versions: 7

Compression:

Stored size: 1.43 KB

Contents

module Pubnub
  class Error < StandardError
    attr_reader :operation, :request, :response, :env, :error, :message, :app, :event

    def initialize(options = {})
      if options.is_a? Hash
        @event     = options[:event]
        @operation = @event
        @request   = options[:request]
        @env       = options[:env]
        @response  = options[:response]
        @error     = options[:error]
        @message   = options[:message] unless options[:message].nil?
        @app       = options[:app]
      end

      @error = self unless @error

      log_error
    end

    private

    def log_error
      error_message = String.new
      error_message << "OPERATION: #{@operation}\n" if @operation
      error_message << "REQUEST: #{@request}\n"     if @request
      error_message << "ENV: #{@env}\n"             if @env
      error_message << "APP: #{@app}\n"             if @app
      error_message << "RESPONSE: #{@response}\n"   if @response
      error_message << "ERROR TYPE: #{@error.class.to_s}\n"
      error_message << "ERROR MESSAGE: #{@message}\n"
      error_message << "ERROR BACKTRACE: #{self.backtrace}"

      if Pubnub.logger.blank?
        puts error_message
      else
        Pubnub.logger.error(:pubnub){error_message}
      end
    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

7 entries across 7 versions & 1 rubygems

Version Path
pubnub-3.7.12 lib/pubnub/exceptions.rb
pubnub-3.7.11 lib/pubnub/exceptions.rb
pubnub-3.7.10 lib/pubnub/exceptions.rb
pubnub-3.7.9 lib/pubnub/exceptions.rb
pubnub-3.7.7 lib/pubnub/exceptions.rb
pubnub-3.7.5 lib/pubnub/exceptions.rb
pubnub-3.7.1 lib/pubnub/exceptions.rb