hoptoad_notifier.rb
791 Bytes
# Override the 'hoptoad_notifier' gem's 'send_notice' method for internal errors.
# Find or create a 'Self.Errbit' app, and save the error internally
# unless errors should be sent to a different Errbit instance.
HoptoadNotifier.module_eval do
class << self
private def send_notice(notice)
# Log the error internally if we are not in a development environment.
if configuration.public?
app = App.find_or_initialize_by(:name => "Self.Errbit")
app.github_repo = "errbit/errbit"
app.save!
notice.send("api_key=", app.api_key)
# Create notice internally.
report = ErrorReport.new(notice.to_xml)
report.generate_notice!
logger.info "Internal error was logged to 'Self.Errbit' app."
end
end
end
end