Class: ExcessFlow::Strategy
- Inherits:
-
Object
- Object
- ExcessFlow::Strategy
- Defined in:
- lib/excess_flow/strategy.rb
Overview
ExcessFlow::Strategy
Base class for implementing different strategies for rate limiting.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
Class Method Summary collapse
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(configuration) ⇒ Strategy
constructor
A new instance of Strategy.
- #within_rate_limit? ⇒ Boolean
Constructor Details
#initialize(configuration) ⇒ Strategy
Returns a new instance of Strategy.
28 29 30 |
# File 'lib/excess_flow/strategy.rb', line 28 def initialize(configuration) @configuration = configuration end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
22 23 24 |
# File 'lib/excess_flow/strategy.rb', line 22 def configuration @configuration end |
Class Method Details
.execute(configuration:, &block) ⇒ Object
24 25 26 |
# File 'lib/excess_flow/strategy.rb', line 24 def self.execute(configuration:, &block) new(configuration).execute(&block) end |
Instance Method Details
#execute ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/excess_flow/strategy.rb', line 32 def execute result = if within_rate_limit? yield else FailedExecution.new end RateLimitedExecutionResult.new(result) end |
#within_rate_limit? ⇒ Boolean
42 43 44 |
# File 'lib/excess_flow/strategy.rb', line 42 def within_rate_limit? true end |