# module Raven::Rails::ActiveJob

### Public Class Methods

included(base) click to toggle source

    # File lib/raven/integrations/rails/active_job.rb, line 4
    def self.included(base)
      base.class_eval do
        rescue_from(Exception) do |exception|
          # Do not capture exceptions when using Sidekiq so we don't capture
          # The same exception twice.
          unless self.class.queue_adapter.to_s == 'ActiveJob::QueueAdapters::SidekiqAdapter'
            active_job_details = {
              :active_job => self.class.name,
              :arguments => arguments,
              :scheduled_at => scheduled_at,
              :job_id => job_id,
              :locale => locale,
            }

            # Add provider_job_id details if Rails 5
            if defined?(provider_job_id)
              active_job_details.merge!(:provider_job_id => provider_job_id)
            end

            Raven.capture_exception(exception, :extra => active_job_details)
            raise exception
          end
        end
      end
    end