Class: RailsApiGuard::Services::RateLimitStore
- Inherits:
-
Object
- Object
- RailsApiGuard::Services::RateLimitStore
- Defined in:
- lib/rails_api_guard/services/rate_limit_store.rb
Instance Method Summary collapse
- #increment_and_check(ip, path) ⇒ Object
-
#initialize(limit, expiry_time) ⇒ RateLimitStore
constructor
A new instance of RateLimitStore.
Constructor Details
#initialize(limit, expiry_time) ⇒ RateLimitStore
Returns a new instance of RateLimitStore.
4 5 6 7 8 |
# File 'lib/rails_api_guard/services/rate_limit_store.rb', line 4 def initialize(limit, expiry_time) @limit = limit @expiry_time = expiry_time @redis = RedisClient.instance end |
Instance Method Details
#increment_and_check(ip, path) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/rails_api_guard/services/rate_limit_store.rb', line 10 def increment_and_check(ip, path) key = "rate_limiter::#{ip}::#{path}" current_count = @redis.get(key).to_i if current_count == 0 @redis.setex(key, @expiry_time, 0) end @redis.incr(key) current_count + 1 > @limit end |