Sha256: 41df31830dbc558d944e38e8220f9e109b5b4d1774225e0f0640be1bc0a4159f

Contents?: true

Size: 824 Bytes

Versions: 1

Compression:

Stored size: 824 Bytes

Contents

module CircuitBreaker
  class Config
    FAILURE_THRESHOLD = 10
    FAILURE_THRESHOLD_PERCENTAGE = 0.5
    INVOCATION_TIMEOUT = 10
    RETRY_TIMEOUT = 60

    UPDATABLE = [
      :invocation_timeout,
      :failure_threshold,
      :failure_threshold_percentage,
      :retry_timeout
    ]

    attr_accessor :invocation_timeout, :failure_threshold, :failure_threshold_percentage, :retry_timeout

    def initialize
      self.failure_threshold = FAILURE_THRESHOLD
      self.failure_threshold_percentage = FAILURE_THRESHOLD_PERCENTAGE
      self.invocation_timeout = INVOCATION_TIMEOUT
      self.retry_timeout = RETRY_TIMEOUT
    end

    def self.update(klass, options)
      (UPDATABLE & options.keys).each do |variable|
        klass.instance_variable_set("@#{variable}", options[variable])
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
circuit_breaker-ruby-0.1.3 lib/circuit_breaker-ruby/config.rb