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