module Supervision

Constants

CircuitBreakerOpenError

Raised when circuit opens

DuplicateEntryError

Raised when registering duplicate circuit breaker name

InvalidParameterError

Raised when invalid configuration parameter is specified

SupervisionError

Generic error

TypeError

Raised when checking circuit type

VERSION

Public Class Methods

[](name) click to toggle source

Retrieve circuit by name

@return [Supervision::CircuitBreaker]

@api public

# File lib/supervision.rb, line 67
def [](name)
  circuit_system[name]
end
circuit_system() click to toggle source
# File lib/supervision.rb, line 51
def circuit_system
  Thread.current[:supervision_circuit_system] ||= @circuit_system
end
configuration() click to toggle source
# File lib/supervision.rb, line 40
def configuration
  @configuration ||= Configuration.new
end
included(base) click to toggle source
# File lib/supervision.rb, line 36
def included(base)
  base.send :extend, ClassMethods
end
init() click to toggle source

Initialize a circuit system

@api private

# File lib/supervision.rb, line 47
def init
  @circuit_system = CircuitSystem.new
end
new(name = nil, options = {}, &block) click to toggle source

Create a new circuit breaker

@api public

# File lib/supervision.rb, line 58
def new(name = nil, options = {}, &block)
  name ? supervise_as(name, options, &block) : supervise(options, &block)
end

Private Class Methods

method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/supervision.rb, line 73
def method_missing(method_name, *args, &block)
  super unless circuit_system.registered?(method_name)
  self[method_name].call(*args)
end