Module: Airbrake::Rails

Defined in:
lib/airbrake/rails.rb,
lib/airbrake/rails/middleware.rb,
lib/airbrake/rails/error_lookup.rb,
lib/airbrake/rails/controller_methods.rb,
lib/airbrake/rails/action_controller_catcher.rb

Defined Under Namespace

Modules: ActionControllerCatcher, ControllerMethods, ErrorLookup Classes: Middleware

Class Method Summary collapse

Class Method Details

.initializeObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/airbrake/rails.rb', line 8

def self.initialize
  if defined?(ActionController::Base)
    ActionController::Base.send(:include, Airbrake::Rails::ActionControllerCatcher)
    ActionController::Base.send(:include, Airbrake::Rails::ErrorLookup)
    ActionController::Base.send(:include, Airbrake::Rails::ControllerMethods)
  end

  rails_logger = if defined?(::Rails.logger)
                   ::Rails.logger
                 elsif defined?(RAILS_DEFAULT_LOGGER)
                   RAILS_DEFAULT_LOGGER
                 end

  if defined?(::Rails.configuration) && ::Rails.configuration.respond_to?(:middleware)
    if defined?(::ActionController::Failsafe)
      ::Rails.configuration.middleware.insert_after 'ActionController::Failsafe',
                                                    Airbrake::Rack
    end
    if defined?(::Rack::Lock)
      ::Rails.configuration.middleware.insert_after 'Rack::Lock',
                                                    Airbrake::UserInformer
    else
      ::Rails.configuration.middleware.insert_before 'Rack::Runtime',
                                                     Airbrake::UserInformer
    end
  end

  Airbrake.configure(true) do |config|
    config.logger           = rails_logger
    config.environment_name = defined?(::Rails.env) && ::Rails.env || defined?(RAILS_ENV) && RAILS_ENV
    config.project_root     = defined?(::Rails.root) && ::Rails.root || defined?(RAILS_ROOT) && RAILS_ROOT
    config.framework        = defined?(::Rails.version) && "Rails: #{::Rails.version}" || defined?(::Rails::VERSION::STRING) && "Rails: #{::Rails::VERSION::STRING}"
  end
end