Sha256: 81f75ee077c3fa2338ff013dd625591fd064432c47caee3be0159d999680254a

Contents?: true

Size: 1.7 KB

Versions: 3

Compression:

Stored size: 1.7 KB

Contents

require "bundler"
Bundler.setup(:default)

require "httparty"
require "logger"
require "json"
require "socket"
require "rack"

require "raygun/version"
require "raygun/configuration"
require "raygun/client"
require "raygun/middleware/rack_exception_interceptor"
require "raygun/testable"
require "raygun/railtie" if defined?(Rails)

module Raygun

  # used to identify ourselves to Raygun
  CLIENT_URL  = "https://github.com/MindscapeHQ/raygun4ruby"
  CLIENT_NAME = "Raygun4Ruby Gem"

  # Exceptions
  class ApiKeyRequired < StandardError; end

  class << self

    include Testable

    # Configuration Object (instance of Raygun::Configuration)
    attr_writer :configuration

    def setup
      yield(configuration)
    end

    def configuration
      @configuration ||= Configuration.new
    end

    def track_exception(exception_instance, env = {})
      if should_report?(exception_instance)
        log("[Raygun] Tracking Exception...")
        Client.new.track_exception(exception_instance, env)
      end
    rescue Exception => e
      if configuration.failsafe_logger
        failsafe_log("Problem reporting exception to Raygun: #{e.class}: #{e.message}\n\n#{e.backrace.join("\n")}")
      else
        raise e
      end
    end

    def track_exceptions
      yield
    rescue => e
      track_exception(e)
    end

    def log(message)
      configuration.logger.info(message) if configuration.logger
    end

    def failsafe_log(message)
      configuration.failsafe_logger.info(message)
    end

    private

      def should_report?(exception)
        return false if configuration.silence_reporting
        return false if configuration.ignore.flatten.include?(exception.class.to_s)
        true
      end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
raygun4ruby-1.0.1 lib/raygun.rb
raygun4ruby-1.0.0 lib/raygun.rb
raygun4ruby-0.0.9 lib/raygun.rb