Repository URL to install this package:
|
Version:
2.0.0 ▾
|
module JUtils
class NotificationAgent
def initialize(type=:mailer)
@type = type
end
def error(error, message=nil)
message ||= caller[0] rescue "Unknown Caller" # in certain (unlikely) situations, caller can return nil
if message
error = RuntimeError.new("#{message} - #{ error.message }")
error.set_backtrace(error.backtrace)
end
deliver(error)
end
def info(message)
message ||= caller[0] rescue "Unknown Caller" # in certain (unlikely) situations, caller can return nil
deliver(message)
end
private
def deliver(error_or_message)
case @type
when :airbrake
deliver_via_airbrake(error_or_message)
when :mailer
deliver_via_mailer(error_or_message.to_s)
end
end
def deliver_via_airbrake(error_or_message)
if Rails.env.development?
deliver_via_mailer(error_or_message.to_s, false).deliver
else
error_or_message = RuntimeError.new(error_or_message) unless error_or_message.is_a?(Exception)
Rails.logger.error(error_or_message)
end
end
def deliver_via_mailer(message, delay=true)
mailer = ActionMailer::Base
mailer = mailer.delay if delay
mailer.mail(to: 'devsupport@jugnoo.com', subject: "Platform issue requiring action on #{ENV['NEW_RELIC_APP_NAME']} - #{Rails.env.upcase}", body: message)
end
end
end