Module: SmokeDetector
- Defined in:
- lib/smoke_detector.rb,
lib/smoke_detector/engine.rb,
lib/smoke_detector/version.rb,
lib/smoke_detector/providers.rb,
lib/smoke_detector/exceptions.rb,
lib/smoke_detector/controller_methods.rb,
lib/smoke_detector/middleware/javascript_monitors.rb
Defined Under Namespace
Modules: ControllerMethods, Providers Classes: Engine, JavaScriptMonitors, ProviderRegistrationError
Constant Summary collapse
- VERSION =
"2.0.1"
- PROVIDERS =
[ :airbrake, :rollbar ]
Class Method Summary collapse
-
.alert(exception, options = {}) ⇒ Object
Reports an exception through SmokeDetector.
-
.message(message, options = {}) ⇒ Object
Records a message through SmokeDetector.
- .providers ⇒ Object
- .register_provider(provider_name, api_key, client_settings = {}, settings = {}) ⇒ Object
- .registered_provider?(provider_name) ⇒ Boolean
Class Method Details
.alert(exception, options = {}) ⇒ Object
Reports an exception through SmokeDetector. Returns nil.
20 21 22 23 |
# File 'lib/smoke_detector.rb', line 20 def self.alert(exception, = {}) self.providers.each {|provider| provider.alert(exception, ) } nil end |
.message(message, options = {}) ⇒ Object
Records a message through SmokeDetector. Returns nil.
33 34 35 36 |
# File 'lib/smoke_detector.rb', line 33 def self.(, = {}) self.providers.each {|provider| provider.(, ) } nil end |
.providers ⇒ Object
16 17 18 |
# File 'lib/smoke_detector/providers.rb', line 16 def self.providers @providers || [] end |
.register_provider(provider_name, api_key, client_settings = {}, settings = {}) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/smoke_detector/providers.rb', line 9 def self.register_provider(provider_name, api_key, client_settings = {}, settings = {}) @providers ||= [] raise ProviderRegistrationError, 'Unsupported Provider' unless PROVIDERS.include?(provider_name) raise ProviderRegistrationError, 'Provider is already registered' if registered_provider?(provider_name) @providers << classify_provider(provider_name).new(api_key, client_settings, settings) end |
.registered_provider?(provider_name) ⇒ Boolean
20 21 22 23 24 |
# File 'lib/smoke_detector/providers.rb', line 20 def self.registered_provider?(provider_name) raise ProviderRegistrationError, 'Unsupported Provider' unless PROVIDERS.include?(provider_name) klass = classify_provider(provider_name) !!SmokeDetector.providers.detect { |provider| provider.is_a?(klass) } end |