Class: Sentiero::Store::Limits
- Inherits:
-
Object
- Object
- Sentiero::Store::Limits
- Defined in:
- lib/sentiero/store/limits.rb
Overview
Eviction/scan caps for a store, held by the store itself instead of read from the global Sentiero.configuration. Build one explicitly, or derive the configured defaults at the composition root with .from_configuration.
Constant Summary collapse
- DEFAULTS =
{ max_events_per_session: nil, max_sessions: nil, max_problems: 5_000, max_server_events: 50_000, analytics_max_scan_sessions: 5_000 }.freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(**overrides) ⇒ Limits
constructor
A new instance of Limits.
Constructor Details
#initialize(**overrides) ⇒ Limits
Returns a new instance of Limits.
23 24 25 26 27 28 |
# File 'lib/sentiero/store/limits.rb', line 23 def initialize(**overrides) unknown = overrides.keys - DEFAULTS.keys raise ArgumentError, "unknown limit(s): #{unknown.join(", ")}" unless unknown.empty? DEFAULTS.merge(overrides).each { |attr, value| instance_variable_set(:"@#{attr}", value) } end |
Class Method Details
.from_configuration(config = Sentiero.configuration) ⇒ Object
17 18 19 |
# File 'lib/sentiero/store/limits.rb', line 17 def self.from_configuration(config = Sentiero.configuration) new(**DEFAULTS.keys.to_h { |attr| [attr, config.public_send(attr)] }) end |