Module: Err

Defined in:
lib/err.rb,
lib/err/version.rb,
lib/err/configuration.rb,
lib/err/services/opbeat.rb,
lib/err/services/service.rb,
lib/err/services/airbrake.rb,
lib/err/services/honeybadger.rb

Defined Under Namespace

Modules: Configuration Classes: Airbrake, Honeybadger, Opbeat, Service

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.configure(service_key = nil, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/err.rb', line 9

def configure(service_key = nil, &block)
  if service_key
    service = find_service_by_key(service_key)
    raise "Service #{service_key.inspect} not found" unless service
    service.configure(&block) if service.enabled?
  else
    yield config
  end
  setup!
end

.enabled_servicesObject



38
39
40
# File 'lib/err.rb', line 38

def enabled_services
  services.select(&:enabled?)
end

.find_service_by_key(key) ⇒ Object



42
43
44
# File 'lib/err.rb', line 42

def find_service_by_key(key)
  services.find { |s| s.key == key.to_s }
end

.message(msg, params = {}) ⇒ Object



24
25
26
# File 'lib/err.rb', line 24

def message(msg, params = {})
  call_each_service :message, msg, params
end

.notify(exception, params = {}) ⇒ Object



20
21
22
# File 'lib/err.rb', line 20

def notify(exception, params = {})
  call_each_service :notify, exception, params
end

.servicesObject



34
35
36
# File 'lib/err.rb', line 34

def services
  @services ||= ObjectSpace.each_object(Class).select { |klass| klass < Err::Service }
end

.setup!Object



28
29
30
31
32
# File 'lib/err.rb', line 28

def setup!
  [:development_environments, :ignore].each do |method|
    call_each_service "#{method}=", config.send(method)
  end
end