Sha256: e2a247ec67cd00b947e67a37e8a6c801f2a40a1284456108800482a4299cf7cb

Contents?: true

Size: 1.21 KB

Versions: 8

Compression:

Stored size: 1.21 KB

Contents

require 'sinatra/base'
require 'honeybadger/ruby'

module Honeybadger
  module Init
    module Sinatra
      ::Sinatra::Base.class_eval do
        class << self
          def build_with_honeybadger(*args, &block)
            install_honeybadger
            build_without_honeybadger(*args, &block)
          end
          alias :build_without_honeybadger :build
          alias :build :build_with_honeybadger

          def honeybadger_config(app)
            {
              api_key: defined?(honeybadger_api_key) ? honeybadger_api_key : nil,
              env: ENV['APP_ENV'] || ENV['RACK_ENV'],
              framework: :sinatra,
              :'logging.path' => 'STDOUT'
            }
          end

          def install_honeybadger
            Honeybadger.init!(honeybadger_config(self))
            Honeybadger.load_plugins!

            config = Honeybadger.config
            return unless config[:'sinatra.enabled']

            install_honeybadger_middleware(Honeybadger::Rack::ErrorNotifier) if config[:'exceptions.enabled']
          end

          def install_honeybadger_middleware(klass)
            return if middleware.any? {|m| m[0] == klass }
            use(klass)
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
honeybadger-3.0.1 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta6 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta5 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta4 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta3 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta2 lib/honeybadger/init/sinatra.rb
honeybadger-3.0.0.beta1 lib/honeybadger/init/sinatra.rb