class Galago::RateLimiter::Configuration

Constants

DEFAULT_API_KEY_HEADER
DEFAULT_CALLBACK
DEFAULT_LIMIT

Attributes

api_key_header[R]
counter[R]
limit[R]

Public Class Methods

new() click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 14
def initialize
  @limit = DEFAULT_LIMIT
  @api_key_header = DEFAULT_API_KEY_HEADER
  @callback = DEFAULT_CALLBACK
end

Public Instance Methods

api_key_header=(api_key_header) click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 25
def api_key_header=(api_key_header)
  header = api_key_header.dup
  header.gsub!('-', '_')
  header.upcase!

  @api_key_header = "HTTP_#{header}".freeze
end
callback(&block) click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 41
def callback(&block)
  if block_given?
    @callback = block
  else
    @callback
  end
end
counter=(counter) click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 33
def counter=(counter)
  @counter = case counter.class.name
             when 'Dalli::Client' then MemcachedCounter.new(counter)
             when 'Redis' then RedisCounter.new(counter)
             else counter
             end
end
limit=(limit) click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 20
def limit=(limit)
  raise ArgumentError.new("Limit must be a positive number") if limit < 1
  @limit = limit
end
reset!() click to toggle source
# File lib/galago/rate_limiter/configuration.rb, line 49
def reset!
  @limit = DEFAULT_LIMIT
  @api_key_header = DEFAULT_API_KEY_HEADER
end