Sha256: 369b240b4fa5a9b8bb685064b8f3f9e04e04183c66f8097a8138a4cc13b41ad2

Contents?: true

Size: 1.75 KB

Versions: 29

Compression:

Stored size: 1.75 KB

Contents

require 'forwardable'
require 'net/http'

require 'honeybadger/logging'

module Honeybadger
  module Backend
    class Response
      attr_reader :code, :body, :message

      # Public: Initializes the Response instance.
      #
      # response - With 1 argument Net::HTTPResponse, the code, body, and
      #            message will be determined automatically. (optional)
      # code      - The Integer status code. May also be :error for requests which
      #             failed to reach the server.
      # body      - The String body of the response.
      # message   - The String message returned by the server (or set by the
      #             backend in the case of an :error code).
      #
      # Returns nothing
      def initialize(*args)
        if (response = args.first).kind_of?(Net::HTTPResponse)
          @code, @body, @message = response.code.to_i, response.body.to_s, response.message
        else
          @code, @body, @message = args
        end

        @success = (200..299).cover?(@code)
      end

      def success?
        @success
      end
    end

    class Base
      extend Forwardable

      include Honeybadger::Logging::Helper

      def initialize(config)
        @config = config
      end

      # Internal: Process payload for feature.
      #
      # feature - A Symbol feature name (corresponds to HTTP endpoint). Current
      #           options are: :notices, :metrics, :traces.
      # payload - Any Object responding to #to_json.
      #
      # Examples:
      #
      #   backend.notify(:notices, Notice.new(...))
      #
      # Raises NotImplementedError
      def notify(feature, payload)
        raise NotImplementedError, 'must define #notify on subclass.'
      end

      private

      attr_reader :config
    end
  end
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
honeybadger-2.1.1 lib/honeybadger/backend/base.rb
honeybadger-mubi-2.1.1 lib/honeybadger/backend/base.rb
honeybadger-2.1.0 lib/honeybadger/backend/base.rb
honeybadger-2.1.0.beta.1 lib/honeybadger/backend/base.rb
honeybadger-2.0.12 lib/honeybadger/backend/base.rb
honeybadger-2.0.11 lib/honeybadger/backend/base.rb
honeybadger-2.0.10 lib/honeybadger/backend/base.rb
honeybadger-2.0.9 lib/honeybadger/backend/base.rb
honeybadger-2.0.8 lib/honeybadger/backend/base.rb
honeybadger-2.0.6 lib/honeybadger/backend/base.rb
honeybadger-2.0.5 lib/honeybadger/backend/base.rb
honeybadger-2.0.4 lib/honeybadger/backend/base.rb
honeybadger-2.0.3 lib/honeybadger/backend/base.rb
honeybadger-2.0.2 lib/honeybadger/backend/base.rb
honeybadger-2.0.1 lib/honeybadger/backend/base.rb
honeybadger-2.0.0 lib/honeybadger/backend/base.rb
honeybadger-2.0.0.beta.13 lib/honeybadger/backend/base.rb
honeybadger-2.0.0.beta.12 lib/honeybadger/backend/base.rb
honeybadger-2.0.0.beta.11 lib/honeybadger/backend/base.rb
honeybadger-2.0.0.beta.10 lib/honeybadger/backend/base.rb