File: uniform_notifier.rb

package info (click to toggle)
ruby-uniform-notifier 1.16.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 240 kB
  • sloc: ruby: 915; makefile: 4
file content (85 lines) | stat: -rw-r--r-- 1,808 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# frozen_string_literal: true

require 'uniform_notifier/base'
require 'uniform_notifier/errors'
require 'uniform_notifier/javascript_alert'
require 'uniform_notifier/javascript_console'
require 'uniform_notifier/honeybadger'
require 'uniform_notifier/xmpp'
require 'uniform_notifier/rails_logger'
require 'uniform_notifier/customized_logger'
require 'uniform_notifier/airbrake'
require 'uniform_notifier/sentry'
require 'uniform_notifier/rollbar'
require 'uniform_notifier/bugsnag'
require 'uniform_notifier/appsignal'
require 'uniform_notifier/slack'
require 'uniform_notifier/raise'
require 'uniform_notifier/terminal_notifier'

class UniformNotifier
  AVAILABLE_NOTIFIERS = %i[
    alert
    console
    honeybadger
    xmpp
    rails_logger
    customized_logger
    airbrake
    rollbar
    bugsnag
    slack
    raise
    sentry
    appsignal
    terminal_notifier
  ].freeze

  NOTIFIERS = [
    JavascriptAlert,
    JavascriptConsole,
    HoneybadgerNotifier,
    Xmpp,
    RailsLogger,
    CustomizedLogger,
    AirbrakeNotifier,
    RollbarNotifier,
    BugsnagNotifier,
    Raise,
    Slack,
    SentryNotifier,
    AppsignalNotifier,
    TerminalNotifier
  ].freeze

  class NotificationError < StandardError
  end

  class << self
    attr_accessor(*AVAILABLE_NOTIFIERS)

    def active_notifiers
      NOTIFIERS.select(&:active?)
    end

    undef xmpp=
    def xmpp=(xmpp)
      UniformNotifier::Xmpp.setup_connection(xmpp)
    end

    undef customized_logger=
    def customized_logger=(logdev)
      UniformNotifier::CustomizedLogger.setup(logdev)
    end

    undef slack=
    def slack=(slack)
      UniformNotifier::Slack.setup_connection(slack)
    end

    undef raise=
    def raise=(exception_class)
      UniformNotifier::Raise.setup_connection(exception_class)
    end
  end
end