Sha256: e80e8da8e075add65a0cffa717e7c115829b94239ef132ba51f9f285fa2e8c98

Contents?: true

Size: 822 Bytes

Versions: 10

Compression:

Stored size: 822 Bytes

Contents

module Resque
  module Failure
    ##
    # Provides Resque integration with Airbrake.
    #
    # @since v5.0.0
    # @see https://github.com/resque/resque/wiki/Failure-Backends
    class Airbrake < Base
      def save
        ::Airbrake.notify_sync(exception, payload) do |notice|
          notice[:context][:component] = 'resque'
          notice[:context][:action] = action(payload)
        end
      end

      private

      ##
      # @return [String] job's name. When ActiveJob is present, retrieve
      #   job_class. When used directly, use worker's name
      def action(payload)
        klass = payload['class'].to_s
        return klass unless payload['args'] && payload['args'].first
        return klass unless (job_class = payload['args'].first['job_class'])
        job_class
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
airbrake-7.3.0 lib/airbrake/resque.rb
airbrake-7.2.1 lib/airbrake/resque.rb
airbrake-7.2.0 lib/airbrake/resque.rb
airbrake-7.1.1 lib/airbrake/resque.rb
airbrake-7.1.0 lib/airbrake/resque.rb
airbrake-7.0.3 lib/airbrake/resque.rb
airbrake-7.0.2 lib/airbrake/resque.rb
airbrake-7.0.1 lib/airbrake/resque.rb
airbrake-7.0.0 lib/airbrake/resque.rb
airbrake-6.3.0 lib/airbrake/resque.rb