openfeature-sdk-sorbet 0.3.1 → 0.4.0

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: b35975b45d85edc14dd6d1250a6e43c2e8e5bf0f16bfa76c46e230fb1e075bd8
4
- data.tar.gz: 63813db644b864365e7631d6b804082bfe460810dbd7f5ce1bbd8e1f5e0bbdd3
3
+ metadata.gz: c618b9b2a1026874a45d03ea989183343bb2653a0de5184d510ba37b37d7abfe
4
+ data.tar.gz: 6573830336c85fb9c4bc66a3903dde8745947b510d45d145e040f4f5592d9eaa
5
5
  SHA512:
6
- metadata.gz: 21e85e1fac1387b02841759807c13ce5b36bd505148c4eb3e4cc1bcf8240720fee801534f6013353b57d377e26332063381f36da337aefc7b36db8511e38ed2f
7
- data.tar.gz: 5aa40c6064570f50c405fa4b3b9879535240802e5cdf7a384807dbd2961466313cd9242d2b6b13c0ee17f0b4a17f1d06440ac5d882f1c7bb5f1daafa8d4ff2ef
6
+ metadata.gz: 02a81d4faa83f8915aa40f6b23aa8261746ef3d3df0ad4155d5a56a12aad98f81fc5a58b7c874e62253e7e43b92d92980b8adf307fd39fce02140e609598a7bd
7
+ data.tar.gz: 3572884d4efb1813c9388534758ebca4791c1f00c1682e8edaa0fb337d1f327be4efd4df1ccd51f7954f23095d6de13ed7818fc065eb143b3a9f62e165d1118e
data/.rubocop.yml CHANGED
@@ -10,7 +10,7 @@ require:
10
10
 
11
11
  AllCops:
12
12
  NewCops: enable
13
- TargetRubyVersion: 3.1
13
+ TargetRubyVersion: 3.0
14
14
  Exclude:
15
15
  - sorbet/**/*.rbi
16
16
 
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.4.0] - 2024-02-21
10
+
11
+ ### Changed
12
+
13
+ - Set minimum Ruby version back to 3.0.
14
+
9
15
  ## [0.3.1] - 2024-01-26
10
16
 
11
17
  ### Changed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- openfeature-sdk-sorbet (0.3.1)
4
+ openfeature-sdk-sorbet (0.4.0)
5
5
  sorbet-runtime (~> 0.5)
6
6
  sorbet-struct-comparable (~> 1.3)
7
7
  zeitwerk (~> 2.6)
@@ -25,7 +25,7 @@ module OpenFeature
25
25
  end
26
26
  def initialize(provider:, name: nil, evaluation_context: nil, hooks: [])
27
27
  @provider = provider
28
- @client_metadata = T.let(ClientMetadata.new(name:), ClientMetadata)
28
+ @client_metadata = T.let(ClientMetadata.new(name: name), ClientMetadata)
29
29
  @evaluation_context = evaluation_context
30
30
  @hooks = hooks
31
31
  end
@@ -44,10 +44,10 @@ module OpenFeature
44
44
  ).returns(T::Boolean)
45
45
  end
46
46
  def fetch_boolean_value(flag_key:, default_value:, context: nil, options: nil)
47
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
48
- invocation_context: context, options:,
47
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
48
+ invocation_context: context, options: options,
49
49
  flag_type: "Boolean")
50
- provider.resolve_boolean_value(flag_key:, default_value:, context: evaluated_context)
50
+ provider.resolve_boolean_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
51
51
  .value
52
52
  rescue StandardError
53
53
  default_value
@@ -63,14 +63,14 @@ module OpenFeature
63
63
  end
64
64
  def fetch_boolean_details(flag_key:, default_value:, context: nil, options: nil) # rubocop:disable Lint/UnusedMethodArgument
65
65
  details = provider.resolve_boolean_value(
66
- flag_key:,
67
- default_value:,
66
+ flag_key: flag_key,
67
+ default_value: default_value,
68
68
  context: build_context(context)
69
69
  )
70
70
 
71
- EvaluationDetails.from_resolution_details(details, flag_key:)
71
+ EvaluationDetails.from_resolution_details(details, flag_key: flag_key)
72
72
  rescue StandardError => e
73
- EvaluationDetails.from_error(e.message, flag_key:, default_value:)
73
+ EvaluationDetails.from_error(e.message, flag_key: flag_key, default_value: default_value)
74
74
  end
75
75
 
76
76
  sig do
@@ -82,11 +82,11 @@ module OpenFeature
82
82
  ).returns(String)
83
83
  end
84
84
  def fetch_string_value(flag_key:, default_value:, context: nil, options: nil)
85
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
86
- invocation_context: context, options:,
85
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
86
+ invocation_context: context, options: options,
87
87
  flag_type: "String")
88
88
  provider
89
- .resolve_string_value(flag_key:, default_value:, context: evaluated_context)
89
+ .resolve_string_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
90
90
  .value
91
91
  rescue StandardError
92
92
  default_value
@@ -102,14 +102,14 @@ module OpenFeature
102
102
  end
103
103
  def fetch_string_details(flag_key:, default_value:, context: nil, options: nil) # rubocop:disable Lint/UnusedMethodArgument
104
104
  details = provider.resolve_string_value(
105
- flag_key:,
106
- default_value:,
105
+ flag_key: flag_key,
106
+ default_value: default_value,
107
107
  context: build_context(context)
108
108
  )
109
109
 
110
- EvaluationDetails.from_resolution_details(details, flag_key:)
110
+ EvaluationDetails.from_resolution_details(details, flag_key: flag_key)
111
111
  rescue StandardError => e
112
- EvaluationDetails.from_error(e.message, flag_key:, default_value:)
112
+ EvaluationDetails.from_error(e.message, flag_key: flag_key, default_value: default_value)
113
113
  end
114
114
 
115
115
  sig do
@@ -121,11 +121,11 @@ module OpenFeature
121
121
  ).returns(Numeric)
122
122
  end
123
123
  def fetch_number_value(flag_key:, default_value:, context: nil, options: nil)
124
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
125
- invocation_context: context, options:,
124
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
125
+ invocation_context: context, options: options,
126
126
  flag_type: "Number")
127
127
  provider
128
- .resolve_number_value(flag_key:, default_value:, context: evaluated_context)
128
+ .resolve_number_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
129
129
  .value
130
130
  rescue StandardError
131
131
  default_value
@@ -141,14 +141,14 @@ module OpenFeature
141
141
  end
142
142
  def fetch_number_details(flag_key:, default_value:, context: nil, options: nil) # rubocop:disable Lint/UnusedMethodArgument
143
143
  details = provider.resolve_number_value(
144
- flag_key:,
145
- default_value:,
144
+ flag_key: flag_key,
145
+ default_value: default_value,
146
146
  context: build_context(context)
147
147
  )
148
148
 
149
- EvaluationDetails.from_resolution_details(details, flag_key:)
149
+ EvaluationDetails.from_resolution_details(details, flag_key: flag_key)
150
150
  rescue StandardError => e
151
- EvaluationDetails.from_error(e.message, flag_key:, default_value:)
151
+ EvaluationDetails.from_error(e.message, flag_key: flag_key, default_value: default_value)
152
152
  end
153
153
 
154
154
  sig do
@@ -160,11 +160,11 @@ module OpenFeature
160
160
  ).returns(Integer)
161
161
  end
162
162
  def fetch_integer_value(flag_key:, default_value:, context: nil, options: nil)
163
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
164
- invocation_context: context, options:,
163
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
164
+ invocation_context: context, options: options,
165
165
  flag_type: "Integer")
166
166
  provider
167
- .resolve_number_value(flag_key:, default_value:, context: evaluated_context)
167
+ .resolve_number_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
168
168
  .value
169
169
  .to_i
170
170
  rescue StandardError
@@ -180,11 +180,11 @@ module OpenFeature
180
180
  ).returns(Float)
181
181
  end
182
182
  def fetch_float_value(flag_key:, default_value:, context: nil, options: nil)
183
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
184
- invocation_context: context, options:,
183
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
184
+ invocation_context: context, options: options,
185
185
  flag_type: "Float")
186
186
  provider
187
- .resolve_number_value(flag_key:, default_value:, context: evaluated_context)
187
+ .resolve_number_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
188
188
  .value
189
189
  .to_f
190
190
  rescue StandardError
@@ -200,11 +200,11 @@ module OpenFeature
200
200
  ).returns(Structure)
201
201
  end
202
202
  def fetch_structure_value(flag_key:, default_value:, context: nil, options: nil)
203
- evaluated_context = build_context_with_before_hooks(flag_key:, default_value:,
204
- invocation_context: context, options:,
203
+ evaluated_context = build_context_with_before_hooks(flag_key: flag_key, default_value: default_value,
204
+ invocation_context: context, options: options,
205
205
  flag_type: "Structure")
206
206
  provider
207
- .resolve_structure_value(flag_key:, default_value:, context: evaluated_context)
207
+ .resolve_structure_value(flag_key: flag_key, default_value: default_value, context: evaluated_context)
208
208
  .value
209
209
  rescue StandardError
210
210
  default_value
@@ -220,14 +220,14 @@ module OpenFeature
220
220
  end
221
221
  def fetch_structure_details(flag_key:, default_value:, context: nil, options: nil) # rubocop:disable Lint/UnusedMethodArgument
222
222
  details = provider.resolve_structure_value(
223
- flag_key:,
224
- default_value:,
223
+ flag_key: flag_key,
224
+ default_value: default_value,
225
225
  context: build_context(context)
226
226
  )
227
227
 
228
- EvaluationDetails.from_resolution_details(details, flag_key:)
228
+ EvaluationDetails.from_resolution_details(details, flag_key: flag_key)
229
229
  rescue StandardError => e
230
- EvaluationDetails.from_error(e.message, flag_key:, default_value:)
230
+ EvaluationDetails.from_error(e.message, flag_key: flag_key, default_value: default_value)
231
231
  end
232
232
 
233
233
  private
@@ -245,8 +245,8 @@ module OpenFeature
245
245
  ).returns(EvaluationContext)
246
246
  end
247
247
  def build_context_with_before_hooks(flag_key:, default_value:, invocation_context:, options:, flag_type:)
248
- hook_context = build_hook_context(flag_key:, default_value:,
249
- invocation_context:, flag_type:)
248
+ hook_context = build_hook_context(flag_key: flag_key, default_value: default_value,
249
+ invocation_context: invocation_context, flag_type: flag_type)
250
250
  OpenFeature::Hook::BeforeHook.call(hooks: build_hooks(options), context: hook_context,
251
251
  hints: {})
252
252
  end
@@ -271,9 +271,9 @@ module OpenFeature
271
271
  end
272
272
  def build_hook_context(flag_key:, default_value:, invocation_context:, flag_type:)
273
273
  evaluation_context = build_context(invocation_context) || OpenFeature::EvaluationContext.new
274
- HookContext.new(flag_key:, default_value:,
275
- evaluation_context:, flag_type:,
276
- client_metadata:, provider_metadata: provider.metadata)
274
+ HookContext.new(flag_key: flag_key, default_value: default_value,
275
+ evaluation_context: evaluation_context, flag_type: flag_type,
276
+ client_metadata: client_metadata, provider_metadata: provider.metadata)
277
277
  end
278
278
 
279
279
  sig { params(invocation_context: T.nilable(EvaluationContext)).returns(T.nilable(EvaluationContext)) }
@@ -281,7 +281,7 @@ module OpenFeature
281
281
  EvaluationContextBuilder.new.call(
282
282
  global_context: OpenFeature.configuration.evaluation_context,
283
283
  client_context: evaluation_context,
284
- invocation_context:
284
+ invocation_context: invocation_context
285
285
  )
286
286
  end
287
287
  end
@@ -27,7 +27,7 @@ module OpenFeature
27
27
  sig { params(key: String, value: T.untyped).returns(EvaluationContext) }
28
28
  def add_field(key, value)
29
29
  EvaluationContext.new(
30
- targeting_key:,
30
+ targeting_key: targeting_key,
31
31
  fields: fields.merge({ key => value })
32
32
  )
33
33
  end
@@ -25,7 +25,7 @@ module OpenFeature
25
25
  sig { params(details: ResolutionDetails[SelfValue], flag_key: String).returns(EvaluationDetails[SelfValue]) }
26
26
  def from_resolution_details(details, flag_key:)
27
27
  EvaluationDetails.new(
28
- flag_key:,
28
+ flag_key: flag_key,
29
29
  value: details.value,
30
30
  error_code: details.error_code,
31
31
  error_message: details.error_message,
@@ -44,7 +44,7 @@ module OpenFeature
44
44
  end
45
45
  def from_error(error_message, flag_key:, default_value:)
46
46
  EvaluationDetails.new(
47
- flag_key:,
47
+ flag_key: flag_key,
48
48
  value: default_value,
49
49
  error_code: ErrorCode::General,
50
50
  error_message: "Provider raised error: #{error_message}",
@@ -35,7 +35,7 @@ module OpenFeature
35
35
  hooks.before.reduce(context.evaluation_context) do |evaluation_context, hook|
36
36
  hook.call(
37
37
  context: context.with_new_evaluation_context(evaluation_context),
38
- hints:
38
+ hints: hints
39
39
  )
40
40
  end
41
41
  )
@@ -22,9 +22,9 @@ module OpenFeature
22
22
  # Needed as opposed to .with due to https://sorbet.org/docs/tstruct#from_hash-gotchas
23
23
  sig { params(new_context: EvaluationContext).returns(HookContext[Value]) }
24
24
  def with_new_evaluation_context(new_context)
25
- OpenFeature::HookContext.new(flag_key:, flag_type:, default_value:,
26
- evaluation_context: new_context, client_metadata:,
27
- provider_metadata:)
25
+ OpenFeature::HookContext.new(flag_key: flag_key, flag_type: flag_type, default_value: default_value,
26
+ evaluation_context: new_context, client_metadata: client_metadata,
27
+ provider_metadata: provider_metadata)
28
28
  end
29
29
  end
30
30
  end
@@ -28,7 +28,7 @@ module OpenFeature
28
28
 
29
29
  sig { override.params(context: EvaluationContext).void }
30
30
  def init(context:)
31
- providers.each { |provider| provider.init(context:) }
31
+ providers.each { |provider| provider.init(context: context) }
32
32
  @status = if providers.all? { |provider| provider.status == ProviderStatus::Ready }
33
33
  ProviderStatus::Ready
34
34
  else
@@ -53,8 +53,8 @@ module OpenFeature
53
53
  .returns(ResolutionDetails[T::Boolean])
54
54
  end
55
55
  def resolve_boolean_value(flag_key:, default_value:, context: nil)
56
- resolve_from_sources(default_value:) do |provider|
57
- provider.resolve_boolean_value(flag_key:, default_value:, context:)
56
+ resolve_from_sources(default_value: default_value) do |provider|
57
+ provider.resolve_boolean_value(flag_key: flag_key, default_value: default_value, context: context)
58
58
  end
59
59
  end
60
60
 
@@ -68,8 +68,8 @@ module OpenFeature
68
68
  .returns(ResolutionDetails[Numeric])
69
69
  end
70
70
  def resolve_number_value(flag_key:, default_value:, context: nil)
71
- resolve_from_sources(default_value:) do |provider|
72
- provider.resolve_number_value(flag_key:, default_value:, context:)
71
+ resolve_from_sources(default_value: default_value) do |provider|
72
+ provider.resolve_number_value(flag_key: flag_key, default_value: default_value, context: context)
73
73
  end
74
74
  end
75
75
 
@@ -83,8 +83,8 @@ module OpenFeature
83
83
  .returns(ResolutionDetails[Structure])
84
84
  end
85
85
  def resolve_structure_value(flag_key:, default_value:, context: nil)
86
- resolve_from_sources(default_value:) do |provider|
87
- provider.resolve_structure_value(flag_key:, default_value:, context:)
86
+ resolve_from_sources(default_value: default_value) do |provider|
87
+ provider.resolve_structure_value(flag_key: flag_key, default_value: default_value, context: context)
88
88
  end
89
89
  end
90
90
 
@@ -98,8 +98,8 @@ module OpenFeature
98
98
  .returns(ResolutionDetails[String])
99
99
  end
100
100
  def resolve_string_value(flag_key:, default_value:, context: nil)
101
- resolve_from_sources(default_value:) do |provider|
102
- provider.resolve_string_value(flag_key:, default_value:, context:)
101
+ resolve_from_sources(default_value: default_value) do |provider|
102
+ provider.resolve_string_value(flag_key: flag_key, default_value: default_value, context: context)
103
103
  end
104
104
  end
105
105
 
data/lib/open_feature.rb CHANGED
@@ -44,8 +44,8 @@ module OpenFeature
44
44
  def create_client(name: nil, evaluation_context: nil, hooks: nil)
45
45
  Client.new(
46
46
  provider: configuration.provider,
47
- name:,
48
- evaluation_context:,
47
+ name: name,
48
+ evaluation_context: evaluation_context,
49
49
  hooks: Array(hooks)
50
50
  )
51
51
  end
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.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max VelDink
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-26 00:00:00.000000000 Z
11
+ date: 2024-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -145,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - ">="
147
147
  - !ruby/object:Gem::Version
148
- version: '3.1'
148
+ version: '3.0'
149
149
  required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - ">="