Sha256: 7df7f9498a5989c162057306af53e04b735461c8c209e81c6d3c2016e5ad956a

Contents?: true

Size: 1001 Bytes

Versions: 3

Compression:

Stored size: 1001 Bytes

Contents

require 'shoryuken'

module Bugsnag
  class Shoryuken
    def initialize
      Bugsnag.configuration.app_type = "shoryuken"
      Bugsnag.configuration.default_delivery_method = :synchronous
    end

    def call(_, queue, _, body)
      begin
        Bugsnag.before_notify_callbacks << lambda {|notification|
          notification.add_tab(:shoryuken, {
            queue: queue,
            body: body
          })
        }

        yield
      rescue Exception => ex
        Bugsnag.auto_notify(ex, {
          :severity_reason => {
            :type => Bugsnag::Notification::UNHANDLED_EXCEPTION_MIDDLEWARE,
            :attributes => {
              :framework => "Shoryuken"
            }
          }
        }) unless [Interrupt, SystemExit, SignalException].include?(ex.class)
        raise
      ensure
        Bugsnag.clear_request_data
      end
    end
  end
end

::Shoryuken.configure_server do |config|
  config.server_middleware do |chain|
    chain.add ::Bugsnag::Shoryuken
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bugsnag-5.5.0 lib/bugsnag/shoryuken.rb
bugsnag-5.4.1 lib/bugsnag/shoryuken.rb
bugsnag-5.4.0 lib/bugsnag/shoryuken.rb