class Croaker::Swallower

Attributes

error[R]
logger[R]
note[R]

Public Class Methods

new(error:, note:, logger: Rails.logger) click to toggle source
# File lib/croaker.rb, line 10
def initialize(error:, note:, logger: Rails.logger)
  @error = error
  @logger = logger
  @note = note
end

Public Instance Methods

call() click to toggle source
# File lib/croaker.rb, line 18
def call
  log(error: error, note: note)
  capture(error)
end
capture(error) click to toggle source
# File lib/croaker.rb, line 33
def capture(error)
  if capturer
    capturer.capture_error(error)
  else
    logger.tagged("Croaker") do
      logger.info "Not capturing this error - no error capturing service registered."
    end
  end
end
log(error:, note:) click to toggle source
# File lib/croaker.rb, line 23
def log(error:, note:)
  message = "Unhandled error: [#{note}] [#{error.message}]"

  message += " #{error.backtrace.first}" if error.backtrace

  logger.tagged("Croaker") do
    logger.error message
  end
end

Private Instance Methods

capturer() click to toggle source
# File lib/croaker.rb, line 45
def capturer
  defined?(::Raven) ? ::Raven : nil
end