Class: OpenFeature::SDK::EvaluationContext

Inherits:
Object
  • Object
show all
Defined in:
lib/open_feature/sdk/evaluation_context.rb

Constant Summary collapse

TARGETING_KEY =
"targeting_key"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**fields) ⇒ EvaluationContext

Returns a new instance of EvaluationContext.



8
9
10
# File 'lib/open_feature/sdk/evaluation_context.rb', line 8

def initialize(**fields)
  @fields = fields.transform_keys(&:to_s)
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



6
7
8
# File 'lib/open_feature/sdk/evaluation_context.rb', line 6

def fields
  @fields
end

Instance Method Details

#==(other) ⇒ Object



27
28
29
# File 'lib/open_feature/sdk/evaluation_context.rb', line 27

def ==(other)
  fields == other.fields
end

#field(key) ⇒ Object



16
17
18
# File 'lib/open_feature/sdk/evaluation_context.rb', line 16

def field(key)
  fields[key]
end

#merge(overriding_context) ⇒ Object



20
21
22
23
24
25
# File 'lib/open_feature/sdk/evaluation_context.rb', line 20

def merge(overriding_context)
  EvaluationContext.new(
    targeting_key: overriding_context.targeting_key || targeting_key,
    **fields.merge(overriding_context.fields)
  )
end

#targeting_keyObject



12
13
14
# File 'lib/open_feature/sdk/evaluation_context.rb', line 12

def targeting_key
  fields[TARGETING_KEY]
end