Class: Labkit::RateLimit::Result
- Inherits:
-
Data
- Object
- Data
- Labkit::RateLimit::Result
- Defined in:
- lib/labkit/rate_limit/result.rb
Overview
Result is the return value of Limiter#check. matched? - true if a rule’s match conditions were satisfied exceeded? - true if the matched rule’s counter exceeded its limit action - the outcome: what the caller should do
:block = rule matched, exceeded, rule configured to block
:log = rule matched, exceeded, rule configured to log only
:allow = rule matched but count within limit, or
no rule matched, or error (fail-open)
The rule's configured action is available via rule.action
rule - the matched Rule object (nil when matched? is false) error? - true if Redis was unavailable; result fails open (exceeded? is false)
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#exceeded ⇒ Object
readonly
Returns the value of attribute exceeded.
-
#matched ⇒ Object
readonly
Returns the value of attribute matched.
-
#rule ⇒ Object
readonly
Returns the value of attribute rule.
Instance Method Summary collapse
- #error? ⇒ Boolean
- #exceeded? ⇒ Boolean
-
#initialize(matched:, action:, exceeded: false, rule: nil, error: false) ⇒ Result
constructor
A new instance of Result.
- #matched? ⇒ Boolean
Constructor Details
#initialize(matched:, action:, exceeded: false, rule: nil, error: false) ⇒ Result
Returns a new instance of Result.
17 18 19 |
# File 'lib/labkit/rate_limit/result.rb', line 17 def initialize(matched:, action:, exceeded: false, rule: nil, error: false) super end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action
16 17 18 |
# File 'lib/labkit/rate_limit/result.rb', line 16 def action @action end |
#error ⇒ Object (readonly)
Returns the value of attribute error
16 17 18 |
# File 'lib/labkit/rate_limit/result.rb', line 16 def error @error end |
#exceeded ⇒ Object (readonly)
Returns the value of attribute exceeded
16 17 18 |
# File 'lib/labkit/rate_limit/result.rb', line 16 def exceeded @exceeded end |
#matched ⇒ Object (readonly)
Returns the value of attribute matched
16 17 18 |
# File 'lib/labkit/rate_limit/result.rb', line 16 def matched @matched end |
#rule ⇒ Object (readonly)
Returns the value of attribute rule
16 17 18 |
# File 'lib/labkit/rate_limit/result.rb', line 16 def rule @rule end |
Instance Method Details
#error? ⇒ Boolean
29 30 31 |
# File 'lib/labkit/rate_limit/result.rb', line 29 def error? error end |
#exceeded? ⇒ Boolean
25 26 27 |
# File 'lib/labkit/rate_limit/result.rb', line 25 def exceeded? exceeded end |
#matched? ⇒ Boolean
21 22 23 |
# File 'lib/labkit/rate_limit/result.rb', line 21 def matched? matched end |