class Bugsnag::Middleware::IgnoreErrorClass

Determines if the exception should be ignored based on the configured ‘ignore_classes`

@deprecated Use {DiscardErrorClass} instead

Public Class Methods

new(bugsnag) click to toggle source
# File lib/bugsnag/middleware/ignore_error_class.rb, line 8
def initialize(bugsnag)
  @bugsnag = bugsnag
end

Public Instance Methods

call(report) click to toggle source
# File lib/bugsnag/middleware/ignore_error_class.rb, line 12
def call(report)
  ignore_error_class = report.raw_exceptions.any? do |ex|
    ancestor_chain = ex.class.ancestors.select { |ancestor| ancestor.is_a?(Class) }.to_set

    report.configuration.ignore_classes.any? do |to_ignore|
      to_ignore.is_a?(Proc) ? to_ignore.call(ex) : ancestor_chain.include?(to_ignore)
    end
  end

  report.ignore! if ignore_error_class

  @bugsnag.call(report)
end