module Hiatus::Mixin::ClassMethods

Public Instance Methods

_circuit_factory_() click to toggle source
# File lib/hiatus/mixin.rb, line 25
def _circuit_factory_; @circuit_factory; end
circuit_break(method) click to toggle source
# File lib/hiatus/mixin.rb, line 27
def circuit_break(method)
  raise NoCircuitFactoryProvided unless @circuit_factory

  unbounded_method_to_decorate = instance_method method

  define_method method do |*args, &block|
    @_circuit_breaker_ ||= self.class._circuit_factory_[]

    @_circuit_breaker_.run do
      unbounded_method_to_decorate.bind(self)[*args, &block]
    end
  end

  define_method :circuit_breaker do
    @_circuit_breaker_
  end

  private :circuit_breaker
end
Also aliased as: circuit_protected
circuit_factory(callable) click to toggle source
# File lib/hiatus/mixin.rb, line 21
def circuit_factory(callable)
  @circuit_factory = callable || Hiatus::Mixin.default_circuit_factory
end
circuit_protected(method)
Alias for: circuit_break