ryz310/my_api_client

View on GitHub
lib/my_api_client/integrations/bugsnag.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module MyApiClient
  # Override lib/my_api_client/errors.rb for supporting Bugsnag breadcrumbs
  class Error < StandardError
    alias _original_initialize initialize

    # Override MyApiClient::Error#initialize
    def initialize(params = nil, error_message = nil)
      _original_initialize(params, error_message)

      Bugsnag.leave_breadcrumb(
        "#{self.class.name} occurred",
        metadata&.transform_values(&:inspect),
        Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE
      )
    end
  end
end