module PUNK::Loggable

Constants

IGNORE

Public Instance Methods

exception(e, extra = {}) click to toggle source
# File lib/punk/helpers/loggable.rb, line 23
def exception(e, extra = {})
  if ENV.key?("SENTRY_DSN")
    ::Sentry.capture_exception(
      e,
      message: e.message,
      extra: extra,
      transaction: "Punk!"
    )
  end
  _clean(e)
  logger.error exception: e
end
logger() click to toggle source
# File lib/punk/helpers/loggable.rb, line 7
def logger
  self.class.logger
end
profile_debug(name, **kwargs, &block) click to toggle source
# File lib/punk/helpers/loggable.rb, line 15
def profile_debug(name, **kwargs, &block)
  self.class.profile_debug(name, **kwargs, &block)
end
profile_info(name, **kwargs, &block) click to toggle source
# File lib/punk/helpers/loggable.rb, line 11
def profile_info(name, **kwargs, &block)
  self.class.profile_info(name, **kwargs, &block)
end
profile_trace(name, **kwargs, &block) click to toggle source
# File lib/punk/helpers/loggable.rb, line 19
def profile_trace(name, **kwargs, &block)
  self.class.profile_trace(name, **kwargs, &block)
end

Private Instance Methods

_clean(e, trim: false) click to toggle source
# File lib/punk/helpers/loggable.rb, line 40
def _clean(e, trim: false)
  _clean(e.cause, trim: true) if e.cause
  ignore = IGNORE.reject { |path| e.backtrace.first =~ /#{path}/ }
  skip = false
  e.backtrace.map! do |line|
    if trim || ignore.any? { |path| line =~ /#{path}/ }
      unless skip
        skip = true
        "..."
      end
    else
      skip = false
      line
    end
  end
  e.backtrace.compact!
end