Class: RateLimiter::Storage::Memcache
- Defined in:
- lib/rate_limiter/storage/memcache.rb
Instance Method Summary collapse
- #add_request(client_id) ⇒ Object
-
#initialize ⇒ Memcache
constructor
Compare Memcache with the rack-attack gem code github.com/kickstarter/rack-attack/blob/master/lib/rack/attack/storage/memcache.rb.
- #requests_in_last_minute(client_id) ⇒ Object
Constructor Details
#initialize ⇒ Memcache
Compare Memcache with the rack-attack gem code github.com/kickstarter/rack-attack/blob/master/lib/rack/attack/storage/memcache.rb
6 7 8 |
# File 'lib/rate_limiter/storage/memcache.rb', line 6 def initialize @cache = Dalli::Client.new end |
Instance Method Details
#add_request(client_id) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/rate_limiter/storage/memcache.rb', line 10 def add_request(client_id) key = "rate_limit:#{client_id}" = @cache.get(key) || [] << Time.now.to_i @cache.set(key, , 60) # Set to expire as defined in the configuration end |
#requests_in_last_minute(client_id) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/rate_limiter/storage/memcache.rb', line 17 def requests_in_last_minute(client_id) key = "rate_limit:#{client_id}" = @cache.get(key) || [] one_minute_ago = Time.now.to_i - 60 .select { || > one_minute_ago } end |