class Supervision::Configuration

A class responsbile for the circuit configuration options

Constants

DEFAULT_CALL_TIMEOUT
DEFAULT_MAX_FAILURES
DEFAULT_RESET_TIMEOUT

Public Class Methods

new(options = {}) click to toggle source

Create a Configuration options

@api public

# File lib/supervision/configuration.rb, line 15
def initialize(options = {})
  verify_options!(options)
  @max_failures = Atomic.new(options.fetch(:max_failures,
                                           DEFAULT_MAX_FAILURES))
  @call_timeout = Atomic.new(options.fetch(:call_timeout,
                                           DEFAULT_CALL_TIMEOUT))
  @reset_timeout = Atomic.new(options.fetch(:reset_timeout,
                                            DEFAULT_RESET_TIMEOUT))
end

Public Instance Methods

call_timeout(time = nil) click to toggle source
# File lib/supervision/configuration.rb, line 52
def call_timeout(time = nil)
  return @call_timeout.value unless time

  self.call_timeout = time
end
call_timeout=(value) click to toggle source
# File lib/supervision/configuration.rb, line 48
def call_timeout=(value)
  @call_timeout.set(value)
end
configure() { |self| ... } click to toggle source

Evalutate this configuration

@return [self]

@api public

# File lib/supervision/configuration.rb, line 30
def configure(&block)
  if block.arity.zero?
    instance_eval(&block)
  else
    yield self
  end
end
max_failures(number = nil) click to toggle source
# File lib/supervision/configuration.rb, line 42
def max_failures(number = nil)
  return @max_failures.value unless number

  self.max_failures = number
end
max_failures=(value) click to toggle source
# File lib/supervision/configuration.rb, line 38
def max_failures=(value)
  @max_failures.set(value)
end
reset_timeout(time = nil) click to toggle source
# File lib/supervision/configuration.rb, line 62
def reset_timeout(time = nil)
  return @reset_timeout.value unless time

  self.reset_timeout = time
end
reset_timeout=(value) click to toggle source
# File lib/supervision/configuration.rb, line 58
def reset_timeout=(value)
  @reset_timeout.set(value)
end

Private Instance Methods

known_options() click to toggle source
# File lib/supervision/configuration.rb, line 70
def known_options
  [:max_failures, :call_timeout, :reset_timeout]
end
raise_unknown_config_option(option) click to toggle source
# File lib/supervision/configuration.rb, line 80
def raise_unknown_config_option(option)
  raise InvalidParameterError,
        "`#{option}` isn`t recognized as valid parameter." \
        " Please use one of `#{known_options.join(', ')}`"
end
verify_options!(options) click to toggle source
# File lib/supervision/configuration.rb, line 74
def verify_options!(options)
  options.keys.each do |key|
    raise_unknown_config_option(key) unless known_options.include?(key)
  end
end