Module: Rollbar::ActiveJob

Defined in:
lib/rollbar/plugins/active_job.rb

Overview

Report any uncaught errors in a job to Rollbar and reraise

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
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
# File 'lib/rollbar/plugins/active_job.rb', line 4

def self.included(base)
  base.send :rescue_from, Exception do |exception|
    job_data = {
      :job => self.class.name,
      :use_exception_level_filters => true
    }

    # When included in ActionMailer, the handler is called twice.
    # This detects the execution that has the expected state.
    if defined?(ActionMailer::Base) && self.class.ancestors.include?(ActionMailer::Base)
      job_data[:action] = action_name
      job_data[:params] = @params

      Rollbar.error(exception, job_data)

    # This detects other supported integrations.
    elsif defined?(arguments)
      job_data[:arguments] = \
        if self.class.respond_to?(:log_arguments?) && !self.class.log_arguments?
          arguments.map(&Rollbar::Scrubbers.method(:scrub_value))
        else
          arguments
        end
      job_data[:job_id] = job_id if defined?(job_id)

      Rollbar.error(exception, job_data)
    end

    raise exception
  end
end