openfeature-sdk-sorbet 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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 +12 -3
  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 +2 -2
  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.1
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.1"
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