module SmokeDetector
Constants
- PROVIDERS
- VERSION
Public Class Methods
alert(exception, options = {})
click to toggle source
Reports an exception through SmokeDetector
. Returns nil.
@example
begin foo = bar rescue => e SmokeDetector.alert(e) end
@param exception [Exception] The exception object to report @option options [Hash] :data Additional data to include alongside the exception
# File lib/smoke_detector.rb, line 20 def self.alert(exception, options = {}) self.providers.each {|provider| provider.alert(exception, options) } nil end
message(message, options = {})
click to toggle source
Records a message through SmokeDetector
. Returns nil.
@example
SmokeDetector.message('Look out!')
@param message [String] The message to be recorded @option options [Hash] Additional data to include alongside the message @option options [Hash] :level The level at which to report the message
# File lib/smoke_detector.rb, line 33 def self.message(message, options = {}) self.providers.each {|provider| provider.message(message, options) } nil end
providers()
click to toggle source
# File lib/smoke_detector/providers.rb, line 16 def self.providers @providers || [] end
register_provider(provider_name, api_key, client_settings = {}, settings = {})
click to toggle source
# 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)
click to toggle source
# 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
Private Class Methods
classify_provider(provider_name)
click to toggle source
# File lib/smoke_detector/providers.rb, line 28 def self.classify_provider(provider_name) raise ProviderRegistrationError, 'Unsupported Provider' unless PROVIDERS.include?(provider_name) ::ActiveSupport::Inflector.constantize("SmokeDetector::Providers::#{provider_name.capitalize}") end