Class: RailsRateLimit::RateLimiter
- Inherits:
-
Object
- Object
- RailsRateLimit::RateLimiter
- Defined in:
- lib/rails_rate_limit/rate_limiter.rb
Instance Attribute Summary collapse
-
#remaining_requests ⇒ Object
readonly
Returns the value of attribute remaining_requests.
-
#reset_time ⇒ Object
readonly
Returns the value of attribute reset_time.
Instance Method Summary collapse
-
#initialize(context:, by:, limit:, period:, store:) ⇒ RateLimiter
constructor
A new instance of RateLimiter.
- #perform! ⇒ Object
Constructor Details
#initialize(context:, by:, limit:, period:, store:) ⇒ RateLimiter
Returns a new instance of RateLimiter.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rails_rate_limit/rate_limiter.rb', line 7 def initialize(context:, by:, limit:, period:, store:) @context = context @by = by @limit = limit @period = period @store_name = store || RailsRateLimit.configuration.default_store validate_runtime_values! @store = resolve_store @key = resolve_key @limit_value = resolve_limit setup_monitoring end |
Instance Attribute Details
#remaining_requests ⇒ Object (readonly)
Returns the value of attribute remaining_requests.
5 6 7 |
# File 'lib/rails_rate_limit/rate_limiter.rb', line 5 def remaining_requests @remaining_requests end |
#reset_time ⇒ Object (readonly)
Returns the value of attribute reset_time.
5 6 7 |
# File 'lib/rails_rate_limit/rate_limiter.rb', line 5 def reset_time @reset_time end |
Instance Method Details
#perform! ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rails_rate_limit/rate_limiter.rb', line 22 def perform! if rate_limit_exceeded? log_rate_limit_exceeded add_rate_limit_headers raise RateLimitExceeded end record_request add_rate_limit_headers true end |