Sha256: cf9c7160d11bf567cbe87a9f33136e3ae7dcf7d62f383b69ab406c4f21d4f46c

Contents?: true

Size: 1.9 KB

Versions: 3

Compression:

Stored size: 1.9 KB

Contents

require 'honeybadger'
require 'honeybadger/monitor'
require 'rails'

module Honeybadger
  class Railtie < Rails::Railtie
    rake_tasks do
      require 'honeybadger/rake_handler'
      require "honeybadger/rails3_tasks"
    end

    initializer "honeybadger.use_rack_middleware" do |app|
      app.config.middleware.insert 0, "Honeybadger::Rack::UserInformer"
      app.config.middleware.insert_after "Honeybadger::Rack::UserInformer","Honeybadger::Rack::UserFeedback"
      app.config.middleware.insert_after "Honeybadger::Rack::UserFeedback","Honeybadger::Rack::ErrorNotifier"
    end

    config.after_initialize do
      Honeybadger.configure(true) do |config|
        config.logger           ||= ::Rails.logger
        config.environment_name ||= ::Rails.env
        config.project_root     ||= ::Rails.root
        config.framework        = "Rails: #{::Rails::VERSION::STRING}"
      end

      ActiveSupport.on_load(:action_controller) do
        # Lazily load action_controller methods
        #
        require 'honeybadger/rails/controller_methods'

        include Honeybadger::Rails::ControllerMethods
      end

      if defined?(::ActionDispatch::DebugExceptions)
        # We should catch the exceptions in ActionDispatch::DebugExceptions in Rails 3.2.x.
        #
        require 'honeybadger/rails/middleware/exceptions_catcher'
        ::ActionDispatch::DebugExceptions.send(:include,Honeybadger::Rails::Middleware::ExceptionsCatcher)
      elsif defined?(::ActionDispatch::ShowExceptions)
        # ActionDispatch::DebugExceptions is not defined in Rails 3.0.x and 3.1.x so
        # catch the exceptions in ShowExceptions.
        #
        require 'honeybadger/rails/middleware/exceptions_catcher'
        ::ActionDispatch::ShowExceptions.send(:include,Honeybadger::Rails::Middleware::ExceptionsCatcher)
      end

      Honeybadger::Dependency.inject!
      Honeybadger.ping(Honeybadger.configuration)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
honeybadger-1.14.0 lib/honeybadger/railtie.rb
honeybadger-1.12.0.beta3 lib/honeybadger/railtie.rb
honeybadger-1.12.0.beta2 lib/honeybadger/railtie.rb