module Berater
Constants
- VERSION
Attributes
redis[RW]
Public Instance Methods
LuaScript(source)
click to toggle source
# File lib/berater/lua_script.rb, line 52 def LuaScript(source) LuaScript.new(source) end
configure() { |self| ... }
click to toggle source
# File lib/berater.rb, line 16 def configure yield self end
expunge()
click to toggle source
# File lib/berater.rb, line 53 def expunge redis.scan_each(match: "#{self.name}*") do |key| redis.del key end end
limiters()
click to toggle source
# File lib/berater.rb, line 20 def limiters @limiters ||= LimiterSet.new end
middleware(&block)
click to toggle source
# File lib/berater.rb, line 24 def middleware(&block) (@middleware ||= Meddleware.new).tap do @middleware.instance_eval(&block) if block_given? end end
new(key, capacity, **opts)
click to toggle source
# File lib/berater.rb, line 30 def new(key, capacity, **opts) args = [] case capacity when Float::INFINITY Berater::Unlimiter when 0 Berater::Inhibitor else if opts[:interval] args << opts.delete(:interval) Berater::RateLimiter elsif opts[:timeout] Berater::ConcurrencyLimiter else Berater::StaticLimiter end end.yield_self do |klass| args = [ key, capacity, *args ].compact klass.new(*args, **opts) end end
reset()
click to toggle source
# File lib/berater.rb, line 59 def reset @redis = nil limiters.clear middleware.clear end