Class: OpenFeature::SDK::Provider::InMemoryProvider
- Inherits:
-
Object
- Object
- OpenFeature::SDK::Provider::InMemoryProvider
- Defined in:
- lib/open_feature/sdk/provider/in_memory_provider.rb
Overview
TODO: Add evaluation context support
Constant Summary collapse
- NAME =
"In-memory Provider"
Instance Attribute Summary collapse
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
Instance Method Summary collapse
- #add_flag(flag_key:, value:) ⇒ Object
- #fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #init ⇒ Object
-
#initialize(flags = {}) ⇒ InMemoryProvider
constructor
A new instance of InMemoryProvider.
- #shutdown ⇒ Object
Constructor Details
#initialize(flags = {}) ⇒ InMemoryProvider
Returns a new instance of InMemoryProvider.
10 11 12 13 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 10 def initialize(flags = {}) @metadata = ProviderMetadata.new(name: NAME).freeze @flags = flags end |
Instance Attribute Details
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
8 9 10 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 8 def @metadata end |
Instance Method Details
#add_flag(flag_key:, value:) ⇒ Object
23 24 25 26 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 23 def add_flag(flag_key:, value:) flags[flag_key] = value # TODO: Emit PROVIDER_CONFIGURATION_CHANGED event once events are implemented end |
#fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
28 29 30 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 28 def fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [TrueClass, FalseClass], flag_key:, default_value:, evaluation_context:) end |
#fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
44 45 46 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 44 def fetch_float_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [Float], flag_key:, default_value:, evaluation_context:) end |
#fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
40 41 42 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 40 def fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [Integer], flag_key:, default_value:, evaluation_context:) end |
#fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
36 37 38 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 36 def fetch_number_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [Numeric], flag_key:, default_value:, evaluation_context:) end |
#fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
48 49 50 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 48 def fetch_object_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [Array, Hash], flag_key:, default_value:, evaluation_context:) end |
#fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
32 33 34 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 32 def fetch_string_value(flag_key:, default_value:, evaluation_context: nil) fetch_value(allowed_classes: [String], flag_key:, default_value:, evaluation_context:) end |
#init ⇒ Object
15 16 17 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 15 def init # Intentional no-op, used for testing end |
#shutdown ⇒ Object
19 20 21 |
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 19 def shutdown # Intentional no-op, used for testing end |