class LunaPark::Notifiers::Sentry

Public Class Methods

new(min_lvl: :debug) click to toggle source
# File lib/luna_park/notifiers/sentry.rb, line 15
def initialize(min_lvl: :debug)
  self.min_lvl = min_lvl
end

Public Instance Methods

post(msg, lvl: :error, **details) click to toggle source
# File lib/luna_park/notifiers/sentry.rb, line 19
def post(msg, lvl: :error, **details)
  raise ArgumentError, "Undefined severity level `#{lvl}`" unless LEVELS.include? lvl

  message = wrap msg
  details = extend details, with: msg

  if message.is_a?(Exception)
    driver.capture_exception(message, extra: details, level: lvl)
  else
    driver.capture_message(message, extra: details, level: lvl)
  end
end

Private Instance Methods

extend(details, with:) click to toggle source
# File lib/luna_park/notifiers/sentry.rb, line 40
def extend(details, with:)
  msg = with
  return details unless msg.respond_to?(:details)

  msg.details.merge(details) do |_, msg_value, post_value|
    { message: msg_value, post: post_value }
  end
end
wrap(message) click to toggle source
# File lib/luna_park/notifiers/sentry.rb, line 34
def wrap(message)
  return message if [Exception, String].any? { |type| message.is_a?(type) }

  message.inspect
end