Module: Supervision

Extended by:
ClassMethods
Defined in:
lib/supervision.rb,
lib/supervision/atomic.rb,
lib/supervision/counter.rb,
lib/supervision/factory.rb,
lib/supervision/version.rb,
lib/supervision/registry.rb,
lib/supervision/time_dsl.rb,
lib/supervision/configuration.rb,
lib/supervision/circuit_system.rb,
lib/supervision/circuit_breaker.rb,
lib/supervision/circuit_control.rb,
lib/supervision/circuit_monitor.rb

Defined Under Namespace

Modules: ClassMethods, TimeDSL Classes: Atomic, CircuitBreaker, CircuitControl, CircuitMonitor, CircuitSystem, Configuration, Counter, Factory, Registry

Constant Summary collapse

SupervisionError =

Generic error

Class.new(::StandardError)
CircuitBreakerOpenError =

Raised when circuit opens

Class.new(SupervisionError)
TypeError =

Raised when checking circuit type

Class.new(SupervisionError)
InvalidParameterError =

Raised when invalid configuration parameter is specified

Class.new(SupervisionError)
DuplicateEntryError =

Raised when registering duplicate circuit breaker name

Class.new(SupervisionError)
VERSION =
"0.2.0"

Class Method Summary collapse

Methods included from ClassMethods

supervise, supervise_as

Class Method Details

.[](name) ⇒ Supervision::CircuitBreaker

Retrieve circuit by name



67
68
69
# File 'lib/supervision.rb', line 67

def [](name)
  circuit_system[name]
end

.circuit_systemObject



51
52
53
# File 'lib/supervision.rb', line 51

def circuit_system
  Thread.current[:supervision_circuit_system] ||= @circuit_system
end

.configurationObject



40
41
42
# File 'lib/supervision.rb', line 40

def configuration
  @configuration ||= Configuration.new
end

.included(base) ⇒ Object



36
37
38
# File 'lib/supervision.rb', line 36

def included(base)
  base.send :extend, ClassMethods
end

.initObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Initialize a circuit system



47
48
49
# File 'lib/supervision.rb', line 47

def init
  @circuit_system = CircuitSystem.new
end

.new(name = nil, options = {}, &block) ⇒ Object

Create a new circuit breaker



58
59
60
# File 'lib/supervision.rb', line 58

def new(name = nil, options = {}, &block)
  name ? supervise_as(name, options, &block) : supervise(options, &block)
end