openfeature-sdk-sorbet 0.2.0.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92165a20d077a7e0c161ee6f2eab9ce00824f3cadb73b9c2a2d81deef6489092
4
- data.tar.gz: 268a5b22805349ace74f129bcfd79a34b674e9df6d76e01fe9c9e6282d8568c9
3
+ metadata.gz: c5c2231f2741a4d89cde28735ddfd5c509bba978559bb732a98a1864bb65dd30
4
+ data.tar.gz: 54d011f1a7bc30a14647632914440ea2814eee934773996d4e70ce9119ec52bc
5
5
  SHA512:
6
- metadata.gz: ab3c1ffc34395389f8698d880a69be7f6c6a112b233a343fb866b077ba17396fb7d1f62f211b1d8d2d784834893b9039511fdf123b73a5a329f07ac396109c38
7
- data.tar.gz: ae81ff686780560422ddb17628b4ac3b464007b67f0af366155cb7fd0435f9cd9d587acf44cae80dd23090b1a2be9d7a8126ffb4af58edc831433d13bdbc127d
6
+ metadata.gz: 11643994331234597fc371c44162f95445ba7e3c5b347a0af614206ebf82df2b884dae463727f68011268a9250bedd00c9c161f3428bcc1f48aeb3090d815236
7
+ data.tar.gz: ee4e892b17b5661ccbab5260a32fa8c460be9ee711f83d99ddc1451e29bdf6edb23e96ef1925aad0bc57c3f77f13b6c44154d24338e591b3a5d3b49987fbf571
data/CHANGELOG.md CHANGED
@@ -6,11 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
- ## [0.2.0.1] - 2023-07-21
9
+ ## [0.2.1] - 2023-07-27
10
10
 
11
- ### Changed
11
+ ### Fixed
12
12
 
13
- * Loosened the type for the `EvaluationContext` underlying Hash to `T::Hash[T.untyped, T.untyped]`. This allows for more varied context to be past to flag evaluation. This is necessary since we don't fully support the Hooks specification and cannot handle all flag evaluation use cases. This behavior will be reverted once the Hooks spec is fully implemented.
13
+ - Fixed an issue where the `OpenFeature::MultipleSourceProvider` did not properly pass evaluation context to the internal providers.
14
14
 
15
15
  ## [0.2.0] - 2023-05-17
16
16
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- openfeature-sdk-sorbet (0.2.0.1)
4
+ openfeature-sdk-sorbet (0.2.1)
5
5
  sorbet-runtime (~> 0.5)
6
6
  sorbet-struct-comparable (~> 1.3)
7
7
  zeitwerk (~> 2.6)
@@ -11,20 +11,22 @@ module OpenFeature
11
11
 
12
12
  include T::Struct::ActsAsComparable
13
13
 
14
- const :targeting_key, T.nilable(String), default: nil
15
- const :fields, T::Hash[T.untyped, T.untyped], default: {}
14
+ FieldValueType = T.type_alias { T.any(T::Boolean, String, Numeric, DateTime, Structure) }
15
+
16
+ const :targeting_key, T.nilable(String)
17
+ const :fields, T::Hash[String, FieldValueType], default: {}
16
18
 
17
19
  sig { params(method_name: Symbol).returns(T::Boolean) }
18
20
  def respond_to_missing?(method_name)
19
21
  fields.key?(method_name.to_s)
20
22
  end
21
23
 
22
- sig { params(method_name: Symbol).returns(T.untyped) }
24
+ sig { params(method_name: Symbol).returns(T.nilable(FieldValueType)) }
23
25
  def method_missing(method_name)
24
26
  fields.fetch(method_name.to_s, nil)
25
27
  end
26
28
 
27
- sig { params(key: T.untyped, value: T.untyped).returns(EvaluationContext) }
29
+ sig { params(key: String, value: FieldValueType).returns(EvaluationContext) }
28
30
  def add_field(key, value)
29
31
  EvaluationContext.new(
30
32
  targeting_key: targeting_key,
@@ -32,7 +34,7 @@ module OpenFeature
32
34
  )
33
35
  end
34
36
 
35
- sig { returns(T::Hash[T.untyped, T.untyped]) }
37
+ sig { returns(T::Hash[String, FieldValueType]) }
36
38
  def to_h
37
39
  targeting_key.nil? ? fields : fields.merge("targeting_key" => targeting_key)
38
40
  end
@@ -38,7 +38,7 @@ module OpenFeature
38
38
  end
39
39
  def resolve_boolean_value(flag_key:, default_value:, context: nil)
40
40
  resolve_from_sources(default_value: default_value) do |provider|
41
- provider.resolve_boolean_value(flag_key: flag_key, default_value: default_value)
41
+ provider.resolve_boolean_value(flag_key: flag_key, default_value: default_value, context: context)
42
42
  end
43
43
  end
44
44
 
@@ -53,7 +53,7 @@ module OpenFeature
53
53
  end
54
54
  def resolve_number_value(flag_key:, default_value:, context: nil)
55
55
  resolve_from_sources(default_value: default_value) do |provider|
56
- provider.resolve_number_value(flag_key: flag_key, default_value: default_value)
56
+ provider.resolve_number_value(flag_key: flag_key, default_value: default_value, context: context)
57
57
  end
58
58
  end
59
59
 
@@ -68,7 +68,7 @@ module OpenFeature
68
68
  end
69
69
  def resolve_structure_value(flag_key:, default_value:, context: nil)
70
70
  resolve_from_sources(default_value: default_value) do |provider|
71
- provider.resolve_structure_value(flag_key: flag_key, default_value: default_value)
71
+ provider.resolve_structure_value(flag_key: flag_key, default_value: default_value, context: context)
72
72
  end
73
73
  end
74
74
 
@@ -83,7 +83,7 @@ module OpenFeature
83
83
  end
84
84
  def resolve_string_value(flag_key:, default_value:, context: nil)
85
85
  resolve_from_sources(default_value: default_value) do |provider|
86
- provider.resolve_string_value(flag_key: flag_key, default_value: default_value)
86
+ provider.resolve_string_value(flag_key: flag_key, default_value: default_value, context: context)
87
87
  end
88
88
  end
89
89
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "openfeature-sdk-sorbet"
5
- spec.version = "0.2.0.1"
5
+ spec.version = "0.2.1"
6
6
  spec.authors = ["Max VelDink"]
7
7
  spec.email = ["maxveldink@gmail.com"]
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openfeature-sdk-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max VelDink
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-21 00:00:00.000000000 Z
11
+ date: 2023-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubygems_version: 3.4.12
150
+ rubygems_version: 3.4.14
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Sorbet-aware implemention of the OpenFeature specification