Class: Subflag::Rails::Backends::MemoryProvider
- Inherits:
-
Object
- Object
- Subflag::Rails::Backends::MemoryProvider
- Defined in:
- lib/subflag/rails/backends/memory_provider.rb
Overview
In-memory provider for testing and development
Flags are stored in a hash and reset when the process restarts. Useful for unit tests and local development without external dependencies.
Instance Method Summary collapse
-
#all ⇒ Object
Get all flags (for debugging).
-
#clear ⇒ Object
Clear all flags.
- #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 ⇒ MemoryProvider
constructor
A new instance of MemoryProvider.
- #metadata ⇒ Object
-
#set(key, value, enabled: true) ⇒ Object
Set a flag value programmatically.
- #shutdown ⇒ Object
Constructor Details
#initialize ⇒ MemoryProvider
Returns a new instance of MemoryProvider.
24 25 26 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 24 def initialize @flags = {} end |
Instance Method Details
#all ⇒ Object
Get all flags (for debugging)
50 51 52 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 50 def all @flags.dup end |
#clear ⇒ Object
Clear all flags
45 46 47 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 45 def clear @flags.clear end |
#fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
54 55 56 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 54 def fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
70 71 72 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 70 def fetch_float_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
66 67 68 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 66 def fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
62 63 64 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 62 def fetch_number_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
74 75 76 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 74 def fetch_object_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
58 59 60 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 58 def fetch_string_value(flag_key:, default_value:, evaluation_context: nil) resolve(flag_key, default_value) end |
#init ⇒ Object
32 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 32 def init; end |
#metadata ⇒ Object
28 29 30 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 28 def OpenFeature::SDK::Provider::ProviderMetadata.new(name: "Subflag Memory Provider") end |
#set(key, value, enabled: true) ⇒ Object
Set a flag value programmatically
40 41 42 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 40 def set(key, value, enabled: true) @flags[normalize_key(key)] = { value: value, enabled: enabled } end |
#shutdown ⇒ Object
33 |
# File 'lib/subflag/rails/backends/memory_provider.rb', line 33 def shutdown; end |