Class: OpenFeature::SDK::Provider::InMemoryProvider

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#metadataObject (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

#initObject



15
16
17
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 15

def init
  # Intentional no-op, used for testing
end

#shutdownObject



19
20
21
# File 'lib/open_feature/sdk/provider/in_memory_provider.rb', line 19

def shutdown
  # Intentional no-op, used for testing
end