Sha256: c9c8a519972d080b8025b20439efd1bfb5527a8f282561e5f9613f577662fd6a

Contents?: true

Size: 1.14 KB

Versions: 11

Compression:

Stored size: 1.14 KB

Contents

require 'shoryuken'

module Bugsnag
  class Shoryuken

    FRAMEWORK_ATTRIBUTES = {
      :framework => "Shoryuken"
    }

    def initialize
      Bugsnag.configure do |config|
        config.app_type ||= "shoryuken"
        config.default_delivery_method = :synchronous
      end
    end

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

        yield
      rescue Exception => ex
        unless [Interrupt, SystemExit, SignalException].include?(ex.class)
          Bugsnag.auto_notify(ex, true) do |report|
            report.severity = "error"
            report.severity_reason = {
              :type => Bugsnag::Report::UNHANDLED_EXCEPTION_MIDDLEWARE,
              :attributes => Bugsnag::Shoryuken::FRAMEWORK_ATTRIBUTES
            }
          end
        end
        raise
      ensure
        Bugsnag.configuration.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

11 entries across 11 versions & 1 rubygems

Version Path
bugsnag-6.6.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.6.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.5.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.4.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.3.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.3.0.beta.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.2.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.1.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.1.0 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.0.1 lib/bugsnag/integrations/shoryuken.rb
bugsnag-6.0.0 lib/bugsnag/integrations/shoryuken.rb