Module: Failsafe

Defined in:
lib/failsafe.rb,
lib/failsafe/failure.rb,
lib/failsafe/version.rb,
lib/failsafe/backends/base.rb,
lib/failsafe/backends/file.rb,
lib/failsafe/backends/stderr.rb,
lib/failsafe/backends/airbrake.rb,
lib/failsafe/backends/exceptional.rb,
lib/failsafe/backends/honeybadger.rb

Defined Under Namespace

Modules: Backends

Constant Summary collapse

VERSION =
'0.2.1'
@@disabled =
false

Class Method Summary collapse

Class Method Details

.disabledBoolean

Determines if failsafe should rescue errors or let them bubble up.



22
# File 'lib/failsafe.rb', line 22

def self.disabled; @@disabled; end

.disabled=(val) ⇒ Object



25
26
27
# File 'lib/failsafe.rb', line 25

def self.disabled=(val)
  @@disabled = val
end

.disabled?Boolean



23
# File 'lib/failsafe.rb', line 23

def self.disabled?; disabled; end

.error_backendsObject

Attach error backends to be fire when errors occur.

Examples:

Adding multiple backends

Failsafe::Config.error_backends << Failsafe::Backends::Airbrake
Failsafe::Config.error_backends << Failsafe::Backends::Stderr


12
13
14
# File 'lib/failsafe.rb', line 12

def self.error_backends
  @backends ||= []
end

.failsafeObject

TODO:

make this threadsafe

Wraps code in a begin..rescue and delivers exceptions to the configured error backends.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/failsafe.rb', line 33

def self.failsafe
  # Let errors bubble up if failsafe has been disabled
  if disabled?
    return yield
  end

  begin
    yield
  rescue => e
    error_backends.each do |backend|
      backend.new(e).save
    end
  end
end