class ExcessFlow::Configuration

ExcessFlow::Configuration

Holds configuration for rate limiter with writeable attributes allowing dynamic change of configuration during runtime

Attributes

connection_pool[RW]
connection_timeout[RW]
redis_url[RW]
sentinels[RW]

Public Class Methods

new() click to toggle source
# File lib/excess_flow/configuration.rb, line 30
def initialize
  @connection_pool = extract_connection_pool
  @connection_timeout = extract_connection_timeout
  @redis_url = extract_redis_url
  @sentinels = process_sentinels
end

Private Instance Methods

extract_connection_pool() click to toggle source
# File lib/excess_flow/configuration.rb, line 39
def extract_connection_pool
  ENV.fetch(
    'EXCESS_FLOW_CONNECTION_POOL',
    ExcessFlow::DEFAULT_CONNECTION_POOL
  ).to_i
end
extract_connection_timeout() click to toggle source
# File lib/excess_flow/configuration.rb, line 46
def extract_connection_timeout
  ENV.fetch(
    'EXCESS_FLOW_CONNECTION_TIMEOUT',
    ExcessFlow::DEFAULT_CONNECTION_TIMEOUT
  ).to_i
end
extract_redis_url() click to toggle source
# File lib/excess_flow/configuration.rb, line 53
def extract_redis_url
  ENV.fetch(
    'EXCESS_FLOW_REDIS_URL',
    ExcessFlow::DEFAULT_REDIS_URL
  )
end
process_sentinels() click to toggle source
# File lib/excess_flow/configuration.rb, line 60
def process_sentinels
  ENV.fetch('EXCESS_FLOW_REDIS_SENTINELS', '').split(',').map do |sentinel|
    host, port = sentinel.split(':')
    { host: host, port: port.to_i }
  end
end