openfeature-sdk-sorbet 0.2.0.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.ruby-version +1 -1
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +9 -6
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +55 -49
  8. data/README.md +23 -6
  9. data/lib/open_feature/client.rb +90 -32
  10. data/lib/open_feature/client_metadata.rb +1 -0
  11. data/lib/open_feature/evaluation_context.rb +7 -5
  12. data/lib/open_feature/evaluation_details.rb +2 -2
  13. data/lib/open_feature/hook.rb +41 -1
  14. data/lib/open_feature/hook_context.rb +30 -0
  15. data/lib/open_feature/hooks.rb +22 -0
  16. data/lib/open_feature/multiple_source_provider.rb +28 -12
  17. data/lib/open_feature/no_op_provider.rb +2 -3
  18. data/lib/open_feature/provider.rb +16 -2
  19. data/lib/open_feature/provider_status.rb +13 -0
  20. data/lib/open_feature.rb +9 -2
  21. data/sorbet/rbi/gems/.gitattributes +1 -0
  22. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  24. data/sorbet/rbi/gems/{minitest@5.18.0.rbi → minitest@5.21.2.rbi} +299 -258
  25. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  26. data/sorbet/rbi/gems/{parser@3.2.2.1.rbi → parser@3.3.0.5.rbi} +438 -2219
  27. data/sorbet/rbi/gems/prism@0.19.0.rbi +25199 -0
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  30. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  31. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.6.rbi} +628 -755
  32. data/sorbet/rbi/gems/{regexp_parser@2.8.0.rbi → regexp_parser@2.9.0.rbi} +203 -180
  33. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  34. data/sorbet/rbi/gems/{rubocop-ast@1.28.1.rbi → rubocop-ast@1.30.0.rbi} +178 -84
  35. data/sorbet/rbi/gems/{rubocop-minitest@0.31.0.rbi → rubocop-minitest@0.34.5.rbi} +280 -232
  36. data/sorbet/rbi/gems/{rubocop-performance@1.17.1.rbi → rubocop-performance@1.20.2.rbi} +397 -172
  37. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.0.rbi → rubocop-sorbet@0.7.6.rbi} +728 -261
  38. data/sorbet/rbi/gems/{rubocop@1.51.0.rbi → rubocop@1.60.2.rbi} +4006 -1936
  39. data/sorbet/rbi/gems/spoom@1.2.1.rbi +17 -56
  40. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  41. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.11.17.rbi} +778 -576
  42. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  43. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  44. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  45. data/sorbet/rbi/gems/{zeitwerk@2.6.8.rbi → zeitwerk@2.6.12.rbi} +78 -67
  46. data/sorbet/tapioca/config.yml +2 -2
  47. data/sorbet/tapioca/require.rb +3 -1
  48. metadata +36 -31
  49. data/openfeature-sdk-sorbet.gemspec +0 -35
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.6.4.rbi +0 -342
  52. data/sorbet/rbi/gems/unparser@0.6.7.rbi +0 -4524
  53. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  54. /data/sorbet/rbi/gems/{reline@0.3.3.rbi → reline@0.4.2.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -381,7 +381,7 @@ class YARDSorbet::TStructProp < ::T::Struct
381
381
  const :types, T::Array[::String]
382
382
 
383
383
  class << self
384
- # source://sorbet-runtime/0.5.10826/lib/types/struct.rb#13
384
+ # source://sorbet-runtime/0.5.11218/lib/types/struct.rb#13
385
385
  def inherited(s); end
386
386
  end
387
387
  end
@@ -7635,7 +7635,7 @@ class YARD::Logger < ::Logger
7635
7635
  # source://yard//lib/yard/logging.rb#201
7636
7636
  def format_log(sev, _time, _prog, msg); end
7637
7637
 
7638
- # source://logger/1.5.3/logger.rb#682
7638
+ # source://logger/1.6.0/logger.rb#684
7639
7639
  def print_no_newline(msg); end
7640
7640
 
7641
7641
  class << self
@@ -9972,7 +9972,7 @@ end
9972
9972
 
9973
9973
  # source://yard//lib/yard/parser/ruby/ast_node.rb#479
9974
9974
  class YARD::Parser::Ruby::MethodDefinitionNode < ::YARD::Parser::Ruby::AstNode
9975
- def block(*_arg0); end
9975
+ def block(n = T.unsafe(nil)); end
9976
9976
 
9977
9977
  # @return [Boolean]
9978
9978
  #
@@ -173,7 +173,7 @@ module Zeitwerk::Internal
173
173
  def internal(method_name); end
174
174
  end
175
175
 
176
- # source://zeitwerk//lib/zeitwerk/loader.rb#6
176
+ # source://zeitwerk//lib/zeitwerk/loader.rb#7
177
177
  class Zeitwerk::Loader
178
178
  include ::Zeitwerk::RealModName
179
179
  include ::Zeitwerk::Loader::Callbacks
@@ -185,27 +185,32 @@ class Zeitwerk::Loader
185
185
 
186
186
  # @return [Loader] a new instance of Loader
187
187
  #
188
- # source://zeitwerk//lib/zeitwerk/loader.rb#98
188
+ # source://zeitwerk//lib/zeitwerk/loader.rb#99
189
189
  def initialize; end
190
190
 
191
- # source://zeitwerk//lib/zeitwerk/loader.rb#42
191
+ # source://zeitwerk//lib/zeitwerk/loader.rb#43
192
192
  def __autoloaded_dirs; end
193
193
 
194
- # source://zeitwerk//lib/zeitwerk/loader.rb#32
194
+ # source://zeitwerk//lib/zeitwerk/loader.rb#33
195
195
  def __autoloads; end
196
196
 
197
- # source://zeitwerk//lib/zeitwerk/loader.rb#76
197
+ # source://zeitwerk//lib/zeitwerk/loader.rb#77
198
198
  def __namespace_dirs; end
199
199
 
200
- # source://zeitwerk//lib/zeitwerk/loader.rb#260
200
+ # source://zeitwerk//lib/zeitwerk/loader.rb#310
201
201
  def __shadowed_file?(file); end
202
202
 
203
- # source://zeitwerk//lib/zeitwerk/loader.rb#87
203
+ # source://zeitwerk//lib/zeitwerk/loader.rb#88
204
204
  def __shadowed_files; end
205
205
 
206
- # source://zeitwerk//lib/zeitwerk/loader.rb#58
206
+ # source://zeitwerk//lib/zeitwerk/loader.rb#59
207
207
  def __to_unload; end
208
208
 
209
+ # @raise [Zeitwerk::Error]
210
+ #
211
+ # source://zeitwerk//lib/zeitwerk/loader.rb#234
212
+ def cpath_expected_at(path); end
213
+
209
214
  # Unloads all loaded code, and calls setup again so that the loader is able
210
215
  # to pick any changes in the file system.
211
216
  #
@@ -214,12 +219,12 @@ class Zeitwerk::Loader
214
219
  #
215
220
  # @raise [Zeitwerk::Error]
216
221
  #
217
- # source://zeitwerk//lib/zeitwerk/loader.rb#221
222
+ # source://zeitwerk//lib/zeitwerk/loader.rb#223
218
223
  def reload; end
219
224
 
220
225
  # Sets autoloads in the root namespaces.
221
226
  #
222
- # source://zeitwerk//lib/zeitwerk/loader.rb#117
227
+ # source://zeitwerk//lib/zeitwerk/loader.rb#119
223
228
  def setup; end
224
229
 
225
230
  # Removes loaded constants and configured autoloads.
@@ -233,7 +238,7 @@ class Zeitwerk::Loader
233
238
  # means `unload` + `setup`. This one is available to be used together with
234
239
  # `unregister`, which is undocumented too.
235
240
  #
236
- # source://zeitwerk//lib/zeitwerk/loader.rb#143
241
+ # source://zeitwerk//lib/zeitwerk/loader.rb#145
237
242
  def unload; end
238
243
 
239
244
  # Says if the given constant path would be unloaded on reload. This
@@ -241,31 +246,31 @@ class Zeitwerk::Loader
241
246
  #
242
247
  # @return [Boolean]
243
248
  #
244
- # source://zeitwerk//lib/zeitwerk/loader.rb#235
249
+ # source://zeitwerk//lib/zeitwerk/loader.rb#285
245
250
  def unloadable_cpath?(cpath); end
246
251
 
247
252
  # Returns an array with the constant paths that would be unloaded on reload.
248
253
  # This predicate returns an empty array if reloading is disabled.
249
254
  #
250
- # source://zeitwerk//lib/zeitwerk/loader.rb#243
255
+ # source://zeitwerk//lib/zeitwerk/loader.rb#293
251
256
  def unloadable_cpaths; end
252
257
 
253
258
  # This is a dangerous method.
254
259
  #
255
- # source://zeitwerk//lib/zeitwerk/loader.rb#251
260
+ # source://zeitwerk//lib/zeitwerk/loader.rb#301
256
261
  def unregister; end
257
262
 
258
263
  private
259
264
 
260
- # source://zeitwerk//lib/zeitwerk/loader.rb#425
265
+ # source://zeitwerk//lib/zeitwerk/loader.rb#456
261
266
  def autoload_file(parent, cname, file); end
262
267
 
263
268
  # @return [Boolean]
264
269
  #
265
- # source://zeitwerk//lib/zeitwerk/loader.rb#483
270
+ # source://zeitwerk//lib/zeitwerk/loader.rb#514
266
271
  def autoload_path_set_by_me_for?(parent, cname); end
267
272
 
268
- # source://zeitwerk//lib/zeitwerk/loader.rb#395
273
+ # source://zeitwerk//lib/zeitwerk/loader.rb#426
269
274
  def autoload_subdir(parent, cname, subdir); end
270
275
 
271
276
  # We keep track of autoloaded directories to remove them from the registry
@@ -274,7 +279,7 @@ class Zeitwerk::Loader
274
279
  # Files are removed as they are autoloaded, but directories need to wait due
275
280
  # to concurrency (see why in Zeitwerk::Loader::Callbacks#on_dir_autoloaded).
276
281
  #
277
- # source://zeitwerk//lib/zeitwerk/loader.rb#42
282
+ # source://zeitwerk//lib/zeitwerk/loader.rb#43
278
283
  def autoloaded_dirs; end
279
284
 
280
285
  # Maps absolute paths for which an autoload has been set ---and not
@@ -285,18 +290,24 @@ class Zeitwerk::Loader
285
290
  # "/Users/fxn/blog/app/models/hotel/pricing.rb" => [Hotel, :Pricing]
286
291
  # ...
287
292
  #
288
- # source://zeitwerk//lib/zeitwerk/loader.rb#32
293
+ # source://zeitwerk//lib/zeitwerk/loader.rb#33
289
294
  def autoloads; end
290
295
 
291
- # Returns the value of attribute mutex.
296
+ # source://zeitwerk//lib/zeitwerk/loader.rb#493
297
+ def define_autoload(parent, cname, abspath); end
298
+
299
+ # source://zeitwerk//lib/zeitwerk/loader.rb#410
300
+ def define_autoloads_for_dir(dir, parent); end
301
+
302
+ # Returns the value of attribute dirs_autoload_monitor.
292
303
  #
293
- # source://zeitwerk//lib/zeitwerk/loader.rb#91
294
- def mutex; end
304
+ # source://zeitwerk//lib/zeitwerk/loader.rb#96
305
+ def dirs_autoload_monitor; end
295
306
 
296
- # Returns the value of attribute mutex2.
307
+ # Returns the value of attribute mutex.
297
308
  #
298
- # source://zeitwerk//lib/zeitwerk/loader.rb#95
299
- def mutex2; end
309
+ # source://zeitwerk//lib/zeitwerk/loader.rb#92
310
+ def mutex; end
300
311
 
301
312
  # Maps namespace constant paths to their respective directories.
302
313
  #
@@ -312,31 +323,25 @@ class Zeitwerk::Loader
312
323
  # and that its children are spread over those directories. We'll visit them
313
324
  # to set up the corresponding autoloads.
314
325
  #
315
- # source://zeitwerk//lib/zeitwerk/loader.rb#76
326
+ # source://zeitwerk//lib/zeitwerk/loader.rb#77
316
327
  def namespace_dirs; end
317
328
 
318
329
  # `dir` is the directory that would have autovivified a namespace. `file` is
319
330
  # the file where we've found the namespace is explicitly defined.
320
331
  #
321
- # source://zeitwerk//lib/zeitwerk/loader.rb#451
332
+ # source://zeitwerk//lib/zeitwerk/loader.rb#482
322
333
  def promote_namespace_from_implicit_to_explicit(dir:, file:, parent:, cname:); end
323
334
 
324
- # source://zeitwerk//lib/zeitwerk/loader.rb#497
335
+ # source://zeitwerk//lib/zeitwerk/loader.rb#528
325
336
  def raise_if_conflicting_directory(dir); end
326
337
 
327
- # source://zeitwerk//lib/zeitwerk/loader.rb#492
338
+ # source://zeitwerk//lib/zeitwerk/loader.rb#523
328
339
  def register_explicit_namespace(cpath); end
329
340
 
330
- # source://zeitwerk//lib/zeitwerk/loader.rb#522
341
+ # source://zeitwerk//lib/zeitwerk/loader.rb#552
331
342
  def run_on_unload_callbacks(cpath, value, abspath); end
332
343
 
333
- # source://zeitwerk//lib/zeitwerk/loader.rb#462
334
- def set_autoload(parent, cname, abspath); end
335
-
336
- # source://zeitwerk//lib/zeitwerk/loader.rb#360
337
- def set_autoloads_in_dir(dir, parent); end
338
-
339
- # source://zeitwerk//lib/zeitwerk/loader.rb#260
344
+ # source://zeitwerk//lib/zeitwerk/loader.rb#310
340
345
  def shadowed_file?(file); end
341
346
 
342
347
  # A shadowed file is a file managed by this loader that is ignored when
@@ -346,7 +351,7 @@ class Zeitwerk::Loader
346
351
  # has only scanned the top-level, `shadowed_files` does not have shadowed
347
352
  # files that may exist deep in the project tree yet.
348
353
  #
349
- # source://zeitwerk//lib/zeitwerk/loader.rb#87
354
+ # source://zeitwerk//lib/zeitwerk/loader.rb#88
350
355
  def shadowed_files; end
351
356
 
352
357
  # Stores metadata needed for unloading. Its entries look like this:
@@ -361,44 +366,44 @@ class Zeitwerk::Loader
361
366
  # If reloading is enabled, this hash is filled as constants are autoloaded
362
367
  # or eager loaded. Otherwise, the collection remains empty.
363
368
  #
364
- # source://zeitwerk//lib/zeitwerk/loader.rb#58
369
+ # source://zeitwerk//lib/zeitwerk/loader.rb#59
365
370
  def to_unload; end
366
371
 
367
- # source://zeitwerk//lib/zeitwerk/loader.rb#529
372
+ # source://zeitwerk//lib/zeitwerk/loader.rb#559
368
373
  def unload_autoload(parent, cname); end
369
374
 
370
- # source://zeitwerk//lib/zeitwerk/loader.rb#535
375
+ # source://zeitwerk//lib/zeitwerk/loader.rb#565
371
376
  def unload_cref(parent, cname); end
372
377
 
373
378
  class << self
374
379
  # Returns an array with the absolute paths of the root directories of all
375
380
  # registered loaders. This is a read-only collection.
376
381
  #
377
- # source://zeitwerk//lib/zeitwerk/loader.rb#354
382
+ # source://zeitwerk//lib/zeitwerk/loader.rb#404
378
383
  def all_dirs; end
379
384
 
380
385
  # Returns the value of attribute default_logger.
381
386
  #
382
- # source://zeitwerk//lib/zeitwerk/loader.rb#270
387
+ # source://zeitwerk//lib/zeitwerk/loader.rb#320
383
388
  def default_logger; end
384
389
 
385
390
  # Sets the attribute default_logger
386
391
  #
387
392
  # @param value the value to set the attribute default_logger to.
388
393
  #
389
- # source://zeitwerk//lib/zeitwerk/loader.rb#270
394
+ # source://zeitwerk//lib/zeitwerk/loader.rb#320
390
395
  def default_logger=(_arg0); end
391
396
 
392
397
  # Broadcasts `eager_load` to all loaders. Those that have not been setup
393
398
  # are skipped.
394
399
  #
395
- # source://zeitwerk//lib/zeitwerk/loader.rb#326
400
+ # source://zeitwerk//lib/zeitwerk/loader.rb#376
396
401
  def eager_load_all; end
397
402
 
398
403
  # Broadcasts `eager_load_namespace` to all loaders. Those that have not
399
404
  # been setup are skipped.
400
405
  #
401
- # source://zeitwerk//lib/zeitwerk/loader.rb#340
406
+ # source://zeitwerk//lib/zeitwerk/loader.rb#390
402
407
  def eager_load_namespace(mod); end
403
408
 
404
409
  # This is a shortcut for
@@ -416,7 +421,7 @@ class Zeitwerk::Loader
416
421
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
417
422
  # is private, client code can only rely on the interface.
418
423
  #
419
- # source://zeitwerk//lib/zeitwerk/loader.rb#288
424
+ # source://zeitwerk//lib/zeitwerk/loader.rb#338
420
425
  def for_gem(warn_on_extra_files: T.unsafe(nil)); end
421
426
 
422
427
  # This is a shortcut for
@@ -434,7 +439,7 @@ class Zeitwerk::Loader
434
439
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
435
440
  # is private, client code can only rely on the interface.
436
441
  #
437
- # source://zeitwerk//lib/zeitwerk/loader.rb#309
442
+ # source://zeitwerk//lib/zeitwerk/loader.rb#359
438
443
  def for_gem_extension(namespace); end
439
444
  end
440
445
  end
@@ -442,21 +447,13 @@ end
442
447
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#3
443
448
  module Zeitwerk::Loader::Callbacks
444
449
  include ::Zeitwerk::RealModName
450
+ extend ::Zeitwerk::Internal
445
451
 
446
- # Invoked from our decorated Kernel#require when a managed directory is
447
- # autoloaded.
448
- #
449
- # @private
450
- #
451
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#34
452
- def on_dir_autoloaded(dir); end
452
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#41
453
+ def __on_dir_autoloaded(dir); end
453
454
 
454
- # Invoked from our decorated Kernel#require when a managed file is autoloaded.
455
- #
456
- # @private
457
- #
458
455
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#10
459
- def on_file_autoloaded(file); end
456
+ def __on_file_autoloaded(file); end
460
457
 
461
458
  # Invoked when a class or module is created or reopened, either from the
462
459
  # tracer or from module autovivification. If the namespace has matching
@@ -464,12 +461,18 @@ module Zeitwerk::Loader::Callbacks
464
461
  #
465
462
  # @private
466
463
  #
467
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#73
464
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#81
468
465
  def on_namespace_loaded(namespace); end
469
466
 
470
467
  private
471
468
 
472
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#84
469
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#41
470
+ def on_dir_autoloaded(dir); end
471
+
472
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#10
473
+ def on_file_autoloaded(file); end
474
+
475
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#92
473
476
  def run_on_load_callbacks(cpath, value, abspath); end
474
477
  end
475
478
 
@@ -742,7 +745,7 @@ module Zeitwerk::Loader::EagerLoad
742
745
 
743
746
  # @raise [Zeitwerk::SetupRequired]
744
747
  #
745
- # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#72
748
+ # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#74
746
749
  def eager_load_namespace(mod); end
747
750
 
748
751
  # Loads the given Ruby file.
@@ -754,7 +757,7 @@ module Zeitwerk::Loader::EagerLoad
754
757
  #
755
758
  # @raise [Zeitwerk::Error]
756
759
  #
757
- # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#114
760
+ # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#116
758
761
  def load_file(path); end
759
762
 
760
763
  private
@@ -762,13 +765,13 @@ module Zeitwerk::Loader::EagerLoad
762
765
  # The caller is responsible for making sure `namespace` is the namespace that
763
766
  # corresponds to `dir`.
764
767
  #
765
- # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#154
768
+ # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#160
766
769
  def actual_eager_load_dir(dir, namespace, force: T.unsafe(nil)); end
767
770
 
768
771
  # In order to invoke this method, the caller has to ensure `child` is a
769
772
  # strict namespace descendant of `root_namespace`.
770
773
  #
771
- # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#189
774
+ # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#195
772
775
  def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end
773
776
  end
774
777
 
@@ -786,6 +789,11 @@ module Zeitwerk::Loader::Helpers
786
789
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#134
787
790
  def cget(parent, cname); end
788
791
 
792
+ # @raise [Zeitwerk::NameError]
793
+ #
794
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#149
795
+ def cname_for(basename, abspath); end
796
+
789
797
  # Symbol#name was introduced in Ruby 3.0. It returns always the same
790
798
  # frozen object, so we may save a few string allocations.
791
799
  #
@@ -830,7 +838,10 @@ module Zeitwerk::Loader::Helpers
830
838
  def walk_up(abspath); end
831
839
  end
832
840
 
833
- # source://zeitwerk//lib/zeitwerk/loader.rb#20
841
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#144
842
+ module Zeitwerk::Loader::Helpers::CNAME_VALIDATOR; end
843
+
844
+ # source://zeitwerk//lib/zeitwerk/loader.rb#21
834
845
  Zeitwerk::Loader::MUTEX = T.let(T.unsafe(nil), Thread::Mutex)
835
846
 
836
847
  # source://zeitwerk//lib/zeitwerk/error.rb#13
@@ -1,4 +1,4 @@
1
1
  gem:
2
2
  workers: 5
3
- dsl:
4
- workers: 5
3
+ exclude:
4
+ - rdoc
@@ -1,8 +1,10 @@
1
- # typed: strict
1
+ # typed: true
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "date"
4
5
  require "debug"
5
6
  require "minitest/autorun"
7
+ require "singleton"
6
8
  require "sorbet-runtime"
7
9
  require "sorbet-struct-comparable"
8
10
  require "zeitwerk"
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.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max VelDink
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date: 2024-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.6'
55
- description:
55
+ description:
56
56
  email:
57
57
  - maxveldink@gmail.com
58
58
  executables: []
@@ -81,46 +81,51 @@ files:
81
81
  - lib/open_feature/evaluation_options.rb
82
82
  - lib/open_feature/flag_metadata.rb
83
83
  - lib/open_feature/hook.rb
84
+ - lib/open_feature/hook_context.rb
85
+ - lib/open_feature/hooks.rb
84
86
  - lib/open_feature/multiple_source_provider.rb
85
87
  - lib/open_feature/no_op_provider.rb
86
88
  - lib/open_feature/provider.rb
87
89
  - lib/open_feature/provider_metadata.rb
90
+ - lib/open_feature/provider_status.rb
88
91
  - lib/open_feature/resolution_details.rb
89
92
  - lib/open_feature/structure.rb
90
- - openfeature-sdk-sorbet.gemspec
91
93
  - sorbet/config
92
94
  - sorbet/rbi/annotations/rainbow.rbi
95
+ - sorbet/rbi/gems/.gitattributes
93
96
  - sorbet/rbi/gems/ast@2.4.2.rbi
94
- - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
95
- - sorbet/rbi/gems/io-console@0.6.0.rbi
96
- - sorbet/rbi/gems/irb@1.6.4.rbi
97
- - sorbet/rbi/gems/json@2.6.3.rbi
98
- - sorbet/rbi/gems/minitest@5.18.0.rbi
97
+ - sorbet/rbi/gems/io-console@0.7.2.rbi
98
+ - sorbet/rbi/gems/json@2.7.1.rbi
99
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
100
+ - sorbet/rbi/gems/minitest@5.21.2.rbi
99
101
  - sorbet/rbi/gems/netrc@0.11.0.rbi
100
- - sorbet/rbi/gems/parallel@1.23.0.rbi
101
- - sorbet/rbi/gems/parser@3.2.2.1.rbi
102
+ - sorbet/rbi/gems/parallel@1.24.0.rbi
103
+ - sorbet/rbi/gems/parser@3.3.0.5.rbi
104
+ - sorbet/rbi/gems/prism@0.19.0.rbi
105
+ - sorbet/rbi/gems/psych@5.1.2.rbi
106
+ - sorbet/rbi/gems/racc@1.7.3.rbi
102
107
  - sorbet/rbi/gems/rainbow@3.1.1.rbi
103
- - sorbet/rbi/gems/rake@13.0.6.rbi
104
- - sorbet/rbi/gems/rbi@0.0.16.rbi
105
- - sorbet/rbi/gems/regexp_parser@2.8.0.rbi
106
- - sorbet/rbi/gems/reline@0.3.3.rbi
107
- - sorbet/rbi/gems/rexml@3.2.5.rbi
108
- - sorbet/rbi/gems/rubocop-ast@1.28.1.rbi
109
- - sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi
110
- - sorbet/rbi/gems/rubocop-performance@1.17.1.rbi
108
+ - sorbet/rbi/gems/rake@13.1.0.rbi
109
+ - sorbet/rbi/gems/rbi@0.1.6.rbi
110
+ - sorbet/rbi/gems/regexp_parser@2.9.0.rbi
111
+ - sorbet/rbi/gems/reline@0.4.2.rbi
112
+ - sorbet/rbi/gems/rexml@3.2.6.rbi
113
+ - sorbet/rbi/gems/rubocop-ast@1.30.0.rbi
114
+ - sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi
115
+ - sorbet/rbi/gems/rubocop-performance@1.20.2.rbi
111
116
  - sorbet/rbi/gems/rubocop-rake@0.6.0.rbi
112
- - sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi
113
- - sorbet/rbi/gems/rubocop@1.51.0.rbi
117
+ - sorbet/rbi/gems/rubocop-sorbet@0.7.6.rbi
118
+ - sorbet/rbi/gems/rubocop@1.60.2.rbi
114
119
  - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
115
120
  - sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi
116
121
  - sorbet/rbi/gems/spoom@1.2.1.rbi
117
- - sorbet/rbi/gems/tapioca@0.11.6.rbi
118
- - sorbet/rbi/gems/thor@1.2.2.rbi
119
- - sorbet/rbi/gems/unicode-display_width@2.4.2.rbi
120
- - sorbet/rbi/gems/unparser@0.6.7.rbi
122
+ - sorbet/rbi/gems/stringio@3.1.0.rbi
123
+ - sorbet/rbi/gems/tapioca@0.11.17.rbi
124
+ - sorbet/rbi/gems/thor@1.3.0.rbi
125
+ - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
121
126
  - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
122
127
  - sorbet/rbi/gems/yard@0.9.34.rbi
123
- - sorbet/rbi/gems/zeitwerk@2.6.8.rbi
128
+ - sorbet/rbi/gems/zeitwerk@2.6.12.rbi
124
129
  - sorbet/tapioca/config.yml
125
130
  - sorbet/tapioca/require.rb
126
131
  homepage: https://github.com/maxveldink/openfeature-sdk-sorbet
@@ -132,7 +137,7 @@ metadata:
132
137
  homepage_uri: https://github.com/maxveldink/openfeature-sdk-sorbet
133
138
  source_code_uri: https://github.com/maxveldink/openfeature-sdk-sorbet
134
139
  changelog_uri: https://github.com/maxveldink/openfeature-sdk-sorbet/blob/main/CHANGELOG.md
135
- post_install_message:
140
+ post_install_message:
136
141
  rdoc_options: []
137
142
  require_paths:
138
143
  - lib
@@ -140,15 +145,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
145
  requirements:
141
146
  - - ">="
142
147
  - !ruby/object:Gem::Version
143
- version: '2.7'
148
+ version: '3.1'
144
149
  required_rubygems_version: !ruby/object:Gem::Requirement
145
150
  requirements:
146
151
  - - ">="
147
152
  - !ruby/object:Gem::Version
148
153
  version: '0'
149
154
  requirements: []
150
- rubygems_version: 3.4.14
151
- signing_key:
155
+ rubygems_version: 3.5.3
156
+ signing_key:
152
157
  specification_version: 4
153
158
  summary: Sorbet-aware implemention of the OpenFeature specification
154
159
  test_files: []
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Gem::Specification.new do |spec|
4
- spec.name = "openfeature-sdk-sorbet"
5
- spec.version = "0.2.0.2"
6
- spec.authors = ["Max VelDink"]
7
- spec.email = ["maxveldink@gmail.com"]
8
-
9
- spec.summary = "Sorbet-aware implemention of the OpenFeature specification"
10
- spec.homepage = "https://github.com/maxveldink/openfeature-sdk-sorbet"
11
- spec.license = "MIT"
12
- spec.required_ruby_version = ">= 2.7"
13
-
14
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
- spec.metadata["rubygems_mfa_required"] = "true"
16
-
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = spec.homepage
19
- spec.metadata["changelog_uri"] = "https://github.com/maxveldink/openfeature-sdk-sorbet/blob/main/CHANGELOG.md"
20
-
21
- # Specify which files should be added to the gem when it is released.
22
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(__dir__) do
24
- `git ls-files -z`.split("\x0").reject do |f|
25
- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
- end
27
- end
28
- spec.bindir = "exe"
29
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
31
-
32
- spec.add_runtime_dependency "sorbet-runtime", "~> 0.5"
33
- spec.add_runtime_dependency "sorbet-struct-comparable", "~> 1.3"
34
- spec.add_runtime_dependency "zeitwerk", "~> 2.6"
35
- end