Class: SimpleRateLimiter::Domain::RateLimit

Inherits:
Object
  • Object
show all
Defined in:
lib/domain/rate_limit.rb

Instance Method Summary collapse

Constructor Details

#initialize(rate_limit, limit_period) ⇒ RateLimit

Returns a new instance of RateLimit.



4
5
6
7
# File 'lib/domain/rate_limit.rb', line 4

def initialize(rate_limit, limit_period)
  @rate_limit = rate_limit
  @limit_period = limit_period
end

Instance Method Details

#exceeded?(records, time = Time.now.to_i) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
16
17
# File 'lib/domain/rate_limit.rb', line 9

def exceeded?(records, time = Time.now.to_i)

  if records.length >= @rate_limit
    time_elapsed = time - records.last.to_i
    return true if time_elapsed < @limit_period
  end

  false
end