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