class Honeybadger::Plugins::Shoryuken::Middleware

def attempt_threshold

def attempt_threshold
  ::Honeybadger.config[:"shoryuken.attempt_threshold"].to_i
end

def call(_worker, _queue, sqs_msg, body)

def call(_worker, _queue, sqs_msg, body)
  begin
    yield
  rescue => e
    if attempt_threshold <= receive_count(sqs_msg)
      Honeybadger.notify(e, parameters: notification_params(body))
    end
    raise e
  end
ensure
  Honeybadger.clear!
end

def notification_params(body)

def notification_params(body)
  body.is_a?(Array) ? {batch: body} : {body: body}
end

def receive_count(sqs_msg)

def receive_count(sqs_msg)
  return 0 if sqs_msg.is_a?(Array)
  sqs_msg.attributes["ApproximateReceiveCount".freeze].to_i
end