sorbet-schema 0.4.2 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.standard.yml +2 -1
  3. data/CHANGELOG.md +23 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +50 -49
  6. data/README.md +230 -7
  7. data/lib/sorbet-schema/t/struct.rb +38 -0
  8. data/lib/sorbet-schema/version.rb +1 -1
  9. data/lib/sorbet-schema.rb +7 -1
  10. data/lib/typed/coercion/struct_coercer.rb +35 -1
  11. data/lib/typed/serializer.rb +1 -1
  12. data/sorbet/rbi/gems/ansi@1.5.0.rbi +1 -0
  13. data/sorbet/rbi/gems/ast@2.4.2.rbi +1 -0
  14. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +9 -0
  15. data/sorbet/rbi/gems/{builder@3.2.4.rbi → builder@3.3.0.rbi} +23 -25
  16. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.0.rbi} +20 -15
  17. data/sorbet/rbi/gems/io-console@0.7.2.rbi +1 -0
  18. data/sorbet/rbi/gems/{json@2.7.1.rbi → json@2.7.2.rbi} +77 -68
  19. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +1 -0
  20. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +1 -0
  21. data/sorbet/rbi/gems/minitest-focus@1.4.0.rbi +14 -13
  22. data/sorbet/rbi/gems/{minitest-reporters@1.6.1.rbi → minitest-reporters@1.7.1.rbi} +48 -40
  23. data/sorbet/rbi/gems/{minitest@5.22.3.rbi → minitest@5.24.0.rbi} +174 -147
  24. data/sorbet/rbi/gems/netrc@0.11.0.rbi +1 -0
  25. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.25.1.rbi} +27 -20
  26. data/sorbet/rbi/gems/{parser@3.3.0.5.rbi → parser@3.3.3.0.rbi} +233 -186
  27. data/sorbet/rbi/gems/{prism@0.24.0.rbi → prism@0.30.0.rbi} +20933 -12761
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1 -0
  29. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.0.rbi} +38 -33
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +1 -0
  31. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.2.1.rbi} +56 -55
  32. data/sorbet/rbi/gems/{rbi@0.1.9.rbi → rbi@0.1.13.rbi} +226 -154
  33. data/sorbet/rbi/gems/{regexp_parser@2.9.0.rbi → regexp_parser@2.9.2.rbi} +3 -2
  34. data/sorbet/rbi/gems/{reline@0.4.3.rbi → reline@0.5.9.rbi} +1 -0
  35. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.3.0.rbi} +134 -114
  36. data/sorbet/rbi/gems/{rubocop-ast@1.31.2.rbi → rubocop-ast@1.31.3.rbi} +4 -6
  37. data/sorbet/rbi/gems/{rubocop-performance@1.20.2.rbi → rubocop-performance@1.21.1.rbi} +1 -0
  38. data/sorbet/rbi/gems/rubocop-sorbet@0.7.8.rbi +1 -0
  39. data/sorbet/rbi/gems/{rubocop@1.62.1.rbi → rubocop@1.64.1.rbi} +1149 -592
  40. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1 -0
  41. data/sorbet/rbi/gems/sorbet-result@1.1.0.rbi +83 -82
  42. data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +1 -0
  43. data/sorbet/rbi/gems/{spoom@1.2.4.rbi → spoom@1.3.2.rbi} +1057 -413
  44. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +1 -0
  45. data/sorbet/rbi/gems/{standard-performance@1.3.1.rbi → standard-performance@1.4.0.rbi} +1 -0
  46. data/sorbet/rbi/gems/standard-sorbet@0.0.2.rbi +1 -0
  47. data/sorbet/rbi/gems/{standard@1.35.1.rbi → standard@1.39.0.rbi} +160 -90
  48. data/sorbet/rbi/gems/{stringio@3.1.0.rbi → stringio@3.1.1.rbi} +1 -0
  49. data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
  50. data/sorbet/rbi/gems/{tapioca@0.12.0.rbi → tapioca@0.14.4.rbi} +190 -142
  51. data/sorbet/rbi/gems/thor@1.3.1.rbi +1 -0
  52. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +1 -0
  53. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +2 -1
  54. data/sorbet/rbi/gems/yard@0.9.36.rbi +1 -0
  55. data/sorbet/rbi/gems/{zeitwerk@2.6.13.rbi → zeitwerk@2.6.16.rbi} +139 -91
  56. metadata +29 -28
  57. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +0 -951
  58. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +0 -23133
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `thor` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem thor`.
6
6
 
7
+
7
8
  # source://thor//lib/thor/shell/lcs_diff.rb#1
8
9
  module LCSDiff
9
10
  protected
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `unicode-display_width` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem unicode-display_width`.
6
6
 
7
+
7
8
  # source://unicode-display_width//lib/unicode/display_width/constants.rb#3
8
9
  module Unicode; end
9
10
 
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `yard-sorbet` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem yard-sorbet`.
6
6
 
7
+
7
8
  class YARD::Handlers::Ruby::ClassHandler < ::YARD::Handlers::Ruby::Base
8
9
  include ::YARDSorbet::Handlers::StructClassHandler
9
10
  end
@@ -381,7 +382,7 @@ class YARDSorbet::TStructProp < ::T::Struct
381
382
  const :types, T::Array[::String]
382
383
 
383
384
  class << self
384
- # source://sorbet-runtime/0.5.11255/lib/types/struct.rb#13
385
+ # source://sorbet-runtime/0.5.11391/lib/types/struct.rb#13
385
386
  def inherited(s); end
386
387
  end
387
388
  end
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `yard` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem yard`.
6
6
 
7
+
7
8
  # source://yard//lib/yard.rb#61
8
9
  ::RUBY18 = T.let(T.unsafe(nil), FalseClass)
9
10
 
@@ -4,6 +4,7 @@
4
4
  # This is an autogenerated file for types exported from the `zeitwerk` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem zeitwerk`.
6
6
 
7
+
7
8
  # source://zeitwerk//lib/zeitwerk/kernel.rb#3
8
9
  module Kernel
9
10
  private
@@ -22,11 +23,69 @@ module Zeitwerk
22
23
  class << self
23
24
  # This is a dangerous method.
24
25
  #
25
- # source://zeitwerk//lib/zeitwerk.rb#21
26
+ # source://zeitwerk//lib/zeitwerk.rb#22
26
27
  def with_loader; end
27
28
  end
28
29
  end
29
30
 
31
+ # This private class encapsulates pairs (mod, cname).
32
+ #
33
+ # Objects represent the constant cname in the class or module object mod, and
34
+ # have API to manage them that encapsulates the constants API. Examples:
35
+ #
36
+ # cref.path
37
+ # cref.set(value)
38
+ # cref.get
39
+ #
40
+ # The constant may or may not exist in mod.
41
+ #
42
+ # source://zeitwerk//lib/zeitwerk/cref.rb#13
43
+ class Zeitwerk::Cref
44
+ include ::Zeitwerk::RealModName
45
+
46
+ # The type of the first argument is Module because Class < Module, class
47
+ # objects are also valid.
48
+ #
49
+ # @return [Cref] a new instance of Cref
50
+ #
51
+ # source://zeitwerk//lib/zeitwerk/cref.rb#23
52
+ def initialize(mod, cname); end
53
+
54
+ # source://zeitwerk//lib/zeitwerk/cref.rb#74
55
+ def autoload(abspath); end
56
+
57
+ # @return [Boolean]
58
+ #
59
+ # source://zeitwerk//lib/zeitwerk/cref.rb#68
60
+ def autoload?; end
61
+
62
+ # Returns the value of attribute cname.
63
+ #
64
+ # source://zeitwerk//lib/zeitwerk/cref.rb#17
65
+ def cname; end
66
+
67
+ # @return [Boolean]
68
+ #
69
+ # source://zeitwerk//lib/zeitwerk/cref.rb#79
70
+ def defined?; end
71
+
72
+ # @raise [NameError]
73
+ #
74
+ # source://zeitwerk//lib/zeitwerk/cref.rb#90
75
+ def get; end
76
+
77
+ # source://zeitwerk//lib/zeitwerk/cref.rb#34
78
+ def path; end
79
+
80
+ # @raise [NameError]
81
+ #
82
+ # source://zeitwerk//lib/zeitwerk/cref.rb#96
83
+ def remove; end
84
+
85
+ # source://zeitwerk//lib/zeitwerk/cref.rb#84
86
+ def set(value); end
87
+ end
88
+
30
89
  # source://zeitwerk//lib/zeitwerk/error.rb#4
31
90
  class Zeitwerk::Error < ::StandardError; end
32
91
 
@@ -185,30 +244,36 @@ class Zeitwerk::Loader
185
244
 
186
245
  # @return [Loader] a new instance of Loader
187
246
  #
188
- # source://zeitwerk//lib/zeitwerk/loader.rb#99
247
+ # source://zeitwerk//lib/zeitwerk/loader.rb#100
189
248
  def initialize; end
190
249
 
191
- # source://zeitwerk//lib/zeitwerk/loader.rb#43
250
+ # source://zeitwerk//lib/zeitwerk/loader.rb#42
192
251
  def __autoloaded_dirs; end
193
252
 
194
- # source://zeitwerk//lib/zeitwerk/loader.rb#33
253
+ # source://zeitwerk//lib/zeitwerk/loader.rb#32
195
254
  def __autoloads; end
196
255
 
197
- # source://zeitwerk//lib/zeitwerk/loader.rb#77
256
+ # source://zeitwerk//lib/zeitwerk/loader.rb#78
198
257
  def __namespace_dirs; end
199
258
 
200
- # source://zeitwerk//lib/zeitwerk/loader.rb#310
259
+ # source://zeitwerk//lib/zeitwerk/loader.rb#344
201
260
  def __shadowed_file?(file); end
202
261
 
203
- # source://zeitwerk//lib/zeitwerk/loader.rb#88
262
+ # source://zeitwerk//lib/zeitwerk/loader.rb#89
204
263
  def __shadowed_files; end
205
264
 
206
- # source://zeitwerk//lib/zeitwerk/loader.rb#59
265
+ # source://zeitwerk//lib/zeitwerk/loader.rb#60
207
266
  def __to_unload; end
208
267
 
268
+ # Returns a hash that maps the absolute paths of the managed files and
269
+ # directories to their respective expected constant paths.
270
+ #
271
+ # source://zeitwerk//lib/zeitwerk/loader.rb#238
272
+ def all_expected_cpaths; end
273
+
209
274
  # @raise [Zeitwerk::Error]
210
275
  #
211
- # source://zeitwerk//lib/zeitwerk/loader.rb#234
276
+ # source://zeitwerk//lib/zeitwerk/loader.rb#268
212
277
  def cpath_expected_at(path); end
213
278
 
214
279
  # Unloads all loaded code, and calls setup again so that the loader is able
@@ -219,12 +284,12 @@ class Zeitwerk::Loader
219
284
  #
220
285
  # @raise [Zeitwerk::Error]
221
286
  #
222
- # source://zeitwerk//lib/zeitwerk/loader.rb#223
287
+ # source://zeitwerk//lib/zeitwerk/loader.rb#224
223
288
  def reload; end
224
289
 
225
290
  # Sets autoloads in the root namespaces.
226
291
  #
227
- # source://zeitwerk//lib/zeitwerk/loader.rb#119
292
+ # source://zeitwerk//lib/zeitwerk/loader.rb#120
228
293
  def setup; end
229
294
 
230
295
  # Removes loaded constants and configured autoloads.
@@ -238,7 +303,7 @@ class Zeitwerk::Loader
238
303
  # means `unload` + `setup`. This one is available to be used together with
239
304
  # `unregister`, which is undocumented too.
240
305
  #
241
- # source://zeitwerk//lib/zeitwerk/loader.rb#145
306
+ # source://zeitwerk//lib/zeitwerk/loader.rb#146
242
307
  def unload; end
243
308
 
244
309
  # Says if the given constant path would be unloaded on reload. This
@@ -246,32 +311,32 @@ class Zeitwerk::Loader
246
311
  #
247
312
  # @return [Boolean]
248
313
  #
249
- # source://zeitwerk//lib/zeitwerk/loader.rb#285
314
+ # source://zeitwerk//lib/zeitwerk/loader.rb#319
250
315
  def unloadable_cpath?(cpath); end
251
316
 
252
317
  # Returns an array with the constant paths that would be unloaded on reload.
253
318
  # This predicate returns an empty array if reloading is disabled.
254
319
  #
255
- # source://zeitwerk//lib/zeitwerk/loader.rb#293
320
+ # source://zeitwerk//lib/zeitwerk/loader.rb#327
256
321
  def unloadable_cpaths; end
257
322
 
258
323
  # This is a dangerous method.
259
324
  #
260
- # source://zeitwerk//lib/zeitwerk/loader.rb#301
325
+ # source://zeitwerk//lib/zeitwerk/loader.rb#335
261
326
  def unregister; end
262
327
 
263
328
  private
264
329
 
265
- # source://zeitwerk//lib/zeitwerk/loader.rb#456
266
- def autoload_file(parent, cname, file); end
330
+ # source://zeitwerk//lib/zeitwerk/loader.rb#491
331
+ def autoload_file(cref, file); end
267
332
 
268
333
  # @return [Boolean]
269
334
  #
270
- # source://zeitwerk//lib/zeitwerk/loader.rb#514
271
- def autoload_path_set_by_me_for?(parent, cname); end
335
+ # source://zeitwerk//lib/zeitwerk/loader.rb#544
336
+ def autoload_path_set_by_me_for?(cref); end
272
337
 
273
- # source://zeitwerk//lib/zeitwerk/loader.rb#426
274
- def autoload_subdir(parent, cname, subdir); end
338
+ # source://zeitwerk//lib/zeitwerk/loader.rb#462
339
+ def autoload_subdir(cref, subdir); end
275
340
 
276
341
  # We keep track of autoloaded directories to remove them from the registry
277
342
  # at the end of eager loading.
@@ -279,34 +344,33 @@ class Zeitwerk::Loader
279
344
  # Files are removed as they are autoloaded, but directories need to wait due
280
345
  # to concurrency (see why in Zeitwerk::Loader::Callbacks#on_dir_autoloaded).
281
346
  #
282
- # source://zeitwerk//lib/zeitwerk/loader.rb#43
347
+ # source://zeitwerk//lib/zeitwerk/loader.rb#42
283
348
  def autoloaded_dirs; end
284
349
 
285
350
  # Maps absolute paths for which an autoload has been set ---and not
286
- # executed--- to their corresponding parent class or module and constant
287
- # name.
351
+ # executed--- to their corresponding Zeitwerk::Cref object.
288
352
  #
289
- # "/Users/fxn/blog/app/models/user.rb" => [Object, :User],
290
- # "/Users/fxn/blog/app/models/hotel/pricing.rb" => [Hotel, :Pricing]
353
+ # "/Users/fxn/blog/app/models/user.rb" => #<Zeitwerk::Cref:... @mod=Object, @cname=:User, ...>,
354
+ # "/Users/fxn/blog/app/models/hotel/pricing.rb" => #<Zeitwerk::Cref:... @mod=Hotel, @cname=:Pricing, ...>,
291
355
  # ...
292
356
  #
293
- # source://zeitwerk//lib/zeitwerk/loader.rb#33
357
+ # source://zeitwerk//lib/zeitwerk/loader.rb#32
294
358
  def autoloads; end
295
359
 
296
- # source://zeitwerk//lib/zeitwerk/loader.rb#493
297
- def define_autoload(parent, cname, abspath); end
360
+ # source://zeitwerk//lib/zeitwerk/loader.rb#523
361
+ def define_autoload(cref, abspath); end
298
362
 
299
- # source://zeitwerk//lib/zeitwerk/loader.rb#410
363
+ # source://zeitwerk//lib/zeitwerk/loader.rb#444
300
364
  def define_autoloads_for_dir(dir, parent); end
301
365
 
302
366
  # Returns the value of attribute dirs_autoload_monitor.
303
367
  #
304
- # source://zeitwerk//lib/zeitwerk/loader.rb#96
368
+ # source://zeitwerk//lib/zeitwerk/loader.rb#97
305
369
  def dirs_autoload_monitor; end
306
370
 
307
371
  # Returns the value of attribute mutex.
308
372
  #
309
- # source://zeitwerk//lib/zeitwerk/loader.rb#92
373
+ # source://zeitwerk//lib/zeitwerk/loader.rb#93
310
374
  def mutex; end
311
375
 
312
376
  # Maps namespace constant paths to their respective directories.
@@ -323,25 +387,25 @@ class Zeitwerk::Loader
323
387
  # and that its children are spread over those directories. We'll visit them
324
388
  # to set up the corresponding autoloads.
325
389
  #
326
- # source://zeitwerk//lib/zeitwerk/loader.rb#77
390
+ # source://zeitwerk//lib/zeitwerk/loader.rb#78
327
391
  def namespace_dirs; end
328
392
 
329
393
  # `dir` is the directory that would have autovivified a namespace. `file` is
330
394
  # the file where we've found the namespace is explicitly defined.
331
395
  #
332
- # source://zeitwerk//lib/zeitwerk/loader.rb#482
333
- def promote_namespace_from_implicit_to_explicit(dir:, file:, parent:, cname:); end
396
+ # source://zeitwerk//lib/zeitwerk/loader.rb#512
397
+ def promote_namespace_from_implicit_to_explicit(dir:, file:, cref:); end
334
398
 
335
- # source://zeitwerk//lib/zeitwerk/loader.rb#528
399
+ # source://zeitwerk//lib/zeitwerk/loader.rb#558
336
400
  def raise_if_conflicting_directory(dir); end
337
401
 
338
- # source://zeitwerk//lib/zeitwerk/loader.rb#523
402
+ # source://zeitwerk//lib/zeitwerk/loader.rb#553
339
403
  def register_explicit_namespace(cpath); end
340
404
 
341
- # source://zeitwerk//lib/zeitwerk/loader.rb#552
405
+ # source://zeitwerk//lib/zeitwerk/loader.rb#582
342
406
  def run_on_unload_callbacks(cpath, value, abspath); end
343
407
 
344
- # source://zeitwerk//lib/zeitwerk/loader.rb#310
408
+ # source://zeitwerk//lib/zeitwerk/loader.rb#344
345
409
  def shadowed_file?(file); end
346
410
 
347
411
  # A shadowed file is a file managed by this loader that is ignored when
@@ -351,59 +415,61 @@ class Zeitwerk::Loader
351
415
  # has only scanned the top-level, `shadowed_files` does not have shadowed
352
416
  # files that may exist deep in the project tree yet.
353
417
  #
354
- # source://zeitwerk//lib/zeitwerk/loader.rb#88
418
+ # source://zeitwerk//lib/zeitwerk/loader.rb#89
355
419
  def shadowed_files; end
356
420
 
357
421
  # Stores metadata needed for unloading. Its entries look like this:
358
422
  #
359
- # "Admin::Role" => [".../admin/role.rb", [Admin, :Role]]
423
+ # "Admin::Role" => [
424
+ # ".../admin/role.rb",
425
+ # #<Zeitwerk::Cref:... @mod=Admin, @cname=:Role, ...>
426
+ # ]
360
427
  #
361
428
  # The cpath as key helps implementing unloadable_cpath? The file name is
362
429
  # stored in order to be able to delete it from $LOADED_FEATURES, and the
363
- # pair [Module, Symbol] is used to remove_const the constant from the class
364
- # or module object.
430
+ # cref is used to remove the constant from the parent class or module.
365
431
  #
366
432
  # If reloading is enabled, this hash is filled as constants are autoloaded
367
433
  # or eager loaded. Otherwise, the collection remains empty.
368
434
  #
369
- # source://zeitwerk//lib/zeitwerk/loader.rb#59
435
+ # source://zeitwerk//lib/zeitwerk/loader.rb#60
370
436
  def to_unload; end
371
437
 
372
- # source://zeitwerk//lib/zeitwerk/loader.rb#559
373
- def unload_autoload(parent, cname); end
438
+ # source://zeitwerk//lib/zeitwerk/loader.rb#589
439
+ def unload_autoload(cref); end
374
440
 
375
- # source://zeitwerk//lib/zeitwerk/loader.rb#565
376
- def unload_cref(parent, cname); end
441
+ # source://zeitwerk//lib/zeitwerk/loader.rb#595
442
+ def unload_cref(cref); end
377
443
 
378
444
  class << self
379
445
  # Returns an array with the absolute paths of the root directories of all
380
446
  # registered loaders. This is a read-only collection.
381
447
  #
382
- # source://zeitwerk//lib/zeitwerk/loader.rb#404
448
+ # source://zeitwerk//lib/zeitwerk/loader.rb#438
383
449
  def all_dirs; end
384
450
 
385
451
  # Returns the value of attribute default_logger.
386
452
  #
387
- # source://zeitwerk//lib/zeitwerk/loader.rb#320
453
+ # source://zeitwerk//lib/zeitwerk/loader.rb#354
388
454
  def default_logger; end
389
455
 
390
456
  # Sets the attribute default_logger
391
457
  #
392
458
  # @param value the value to set the attribute default_logger to.
393
459
  #
394
- # source://zeitwerk//lib/zeitwerk/loader.rb#320
460
+ # source://zeitwerk//lib/zeitwerk/loader.rb#354
395
461
  def default_logger=(_arg0); end
396
462
 
397
463
  # Broadcasts `eager_load` to all loaders. Those that have not been setup
398
464
  # are skipped.
399
465
  #
400
- # source://zeitwerk//lib/zeitwerk/loader.rb#376
466
+ # source://zeitwerk//lib/zeitwerk/loader.rb#410
401
467
  def eager_load_all; end
402
468
 
403
469
  # Broadcasts `eager_load_namespace` to all loaders. Those that have not
404
470
  # been setup are skipped.
405
471
  #
406
- # source://zeitwerk//lib/zeitwerk/loader.rb#390
472
+ # source://zeitwerk//lib/zeitwerk/loader.rb#424
407
473
  def eager_load_namespace(mod); end
408
474
 
409
475
  # This is a shortcut for
@@ -421,7 +487,7 @@ class Zeitwerk::Loader
421
487
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
422
488
  # is private, client code can only rely on the interface.
423
489
  #
424
- # source://zeitwerk//lib/zeitwerk/loader.rb#338
490
+ # source://zeitwerk//lib/zeitwerk/loader.rb#372
425
491
  def for_gem(warn_on_extra_files: T.unsafe(nil)); end
426
492
 
427
493
  # This is a shortcut for
@@ -439,7 +505,7 @@ class Zeitwerk::Loader
439
505
  # This method returns a subclass of Zeitwerk::Loader, but the exact type
440
506
  # is private, client code can only rely on the interface.
441
507
  #
442
- # source://zeitwerk//lib/zeitwerk/loader.rb#359
508
+ # source://zeitwerk//lib/zeitwerk/loader.rb#393
443
509
  def for_gem_extension(namespace); end
444
510
  end
445
511
  end
@@ -449,7 +515,7 @@ module Zeitwerk::Loader::Callbacks
449
515
  include ::Zeitwerk::RealModName
450
516
  extend ::Zeitwerk::Internal
451
517
 
452
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#41
518
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#40
453
519
  def __on_dir_autoloaded(dir); end
454
520
 
455
521
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#10
@@ -461,18 +527,18 @@ module Zeitwerk::Loader::Callbacks
461
527
  #
462
528
  # @private
463
529
  #
464
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#81
530
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#80
465
531
  def on_namespace_loaded(namespace); end
466
532
 
467
533
  private
468
534
 
469
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#41
535
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#40
470
536
  def on_dir_autoloaded(dir); end
471
537
 
472
538
  # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#10
473
539
  def on_file_autoloaded(file); end
474
540
 
475
- # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#92
541
+ # source://zeitwerk//lib/zeitwerk/loader/callbacks.rb#91
476
542
  def run_on_load_callbacks(cpath, value, abspath); end
477
543
  end
478
544
 
@@ -771,7 +837,7 @@ module Zeitwerk::Loader::EagerLoad
771
837
  # In order to invoke this method, the caller has to ensure `child` is a
772
838
  # strict namespace descendant of `root_namespace`.
773
839
  #
774
- # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#195
840
+ # source://zeitwerk//lib/zeitwerk/loader/eager_load.rb#193
775
841
  def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end
776
842
  end
777
843
 
@@ -779,45 +845,28 @@ end
779
845
  module Zeitwerk::Loader::Helpers
780
846
  private
781
847
 
782
- # @return [Boolean]
783
- #
784
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#128
785
- def cdef?(parent, cname); end
786
-
787
- # @raise [NameError]
788
- #
789
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#134
790
- def cget(parent, cname); end
791
-
792
848
  # @raise [Zeitwerk::NameError]
793
849
  #
794
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#149
850
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#110
795
851
  def cname_for(basename, abspath); end
796
852
 
797
- # Symbol#name was introduced in Ruby 3.0. It returns always the same
798
- # frozen object, so we may save a few string allocations.
799
- #
800
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#118
801
- def cpath(parent, cname); end
802
-
803
- # @raise [NameError]
804
- #
805
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#140
806
- def crem(parent, cname); end
807
-
808
853
  # @return [Boolean]
809
854
  #
810
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#67
855
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#85
811
856
  def dir?(path); end
812
857
 
858
+ # Looks for a Ruby file using breadth-first search. This type of search is
859
+ # important to list as less directories as possible and return fast in the
860
+ # common case in which there are Ruby files.
861
+ #
813
862
  # @return [Boolean]
814
863
  #
815
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#45
864
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#56
816
865
  def has_at_least_one_ruby_file?(dir); end
817
866
 
818
867
  # @return [Boolean]
819
868
  #
820
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#72
869
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#90
821
870
  def hidden?(basename); end
822
871
 
823
872
  # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#7
@@ -828,17 +877,16 @@ module Zeitwerk::Loader::Helpers
828
877
 
829
878
  # @return [Boolean]
830
879
  #
831
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#62
880
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#80
832
881
  def ruby?(path); end
833
882
 
834
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#109
835
- def strict_autoload_path(parent, cname); end
836
-
837
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#77
883
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#95
838
884
  def walk_up(abspath); end
839
885
  end
840
886
 
841
- # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#144
887
+ # --- Inflection --------------------------------------------------------------------------------
888
+ #
889
+ # source://zeitwerk//lib/zeitwerk/loader/helpers.rb#105
842
890
  module Zeitwerk::Loader::Helpers::CNAME_VALIDATOR; end
843
891
 
844
892
  # source://zeitwerk//lib/zeitwerk/loader.rb#21
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.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: 2024-03-21 00:00:00.000000000 Z
11
+ date: 2024-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-result
@@ -85,6 +85,7 @@ files:
85
85
  - Rakefile
86
86
  - lib/sorbet-schema.rb
87
87
  - lib/sorbet-schema/hash_transformer.rb
88
+ - lib/sorbet-schema/t/struct.rb
88
89
  - lib/sorbet-schema/version.rb
89
90
  - lib/typed/coercion.rb
90
91
  - lib/typed/coercion/boolean_coercer.rb
@@ -124,48 +125,48 @@ files:
124
125
  - sorbet/rbi/gems/.gitattributes
125
126
  - sorbet/rbi/gems/ansi@1.5.0.rbi
126
127
  - sorbet/rbi/gems/ast@2.4.2.rbi
127
- - sorbet/rbi/gems/builder@3.2.4.rbi
128
- - sorbet/rbi/gems/erubi@1.12.0.rbi
128
+ - sorbet/rbi/gems/bigdecimal@3.1.8.rbi
129
+ - sorbet/rbi/gems/builder@3.3.0.rbi
130
+ - sorbet/rbi/gems/erubi@1.13.0.rbi
129
131
  - sorbet/rbi/gems/io-console@0.7.2.rbi
130
- - sorbet/rbi/gems/json@2.7.1.rbi
132
+ - sorbet/rbi/gems/json@2.7.2.rbi
131
133
  - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
132
134
  - sorbet/rbi/gems/lint_roller@1.1.0.rbi
133
135
  - sorbet/rbi/gems/minitest-focus@1.4.0.rbi
134
- - sorbet/rbi/gems/minitest-reporters@1.6.1.rbi
135
- - sorbet/rbi/gems/minitest@5.22.3.rbi
136
+ - sorbet/rbi/gems/minitest-reporters@1.7.1.rbi
137
+ - sorbet/rbi/gems/minitest@5.24.0.rbi
136
138
  - sorbet/rbi/gems/netrc@0.11.0.rbi
137
- - sorbet/rbi/gems/parallel@1.24.0.rbi
138
- - sorbet/rbi/gems/parser@3.3.0.5.rbi
139
- - sorbet/rbi/gems/prettier_print@1.2.1.rbi
140
- - sorbet/rbi/gems/prism@0.24.0.rbi
139
+ - sorbet/rbi/gems/parallel@1.25.1.rbi
140
+ - sorbet/rbi/gems/parser@3.3.3.0.rbi
141
+ - sorbet/rbi/gems/prism@0.30.0.rbi
141
142
  - sorbet/rbi/gems/psych@5.1.2.rbi
142
- - sorbet/rbi/gems/racc@1.7.3.rbi
143
+ - sorbet/rbi/gems/racc@1.8.0.rbi
143
144
  - sorbet/rbi/gems/rainbow@3.1.1.rbi
144
- - sorbet/rbi/gems/rake@13.1.0.rbi
145
- - sorbet/rbi/gems/rbi@0.1.9.rbi
146
- - sorbet/rbi/gems/regexp_parser@2.9.0.rbi
147
- - sorbet/rbi/gems/reline@0.4.3.rbi
148
- - sorbet/rbi/gems/rexml@3.2.6.rbi
149
- - sorbet/rbi/gems/rubocop-ast@1.31.2.rbi
150
- - sorbet/rbi/gems/rubocop-performance@1.20.2.rbi
145
+ - sorbet/rbi/gems/rake@13.2.1.rbi
146
+ - sorbet/rbi/gems/rbi@0.1.13.rbi
147
+ - sorbet/rbi/gems/regexp_parser@2.9.2.rbi
148
+ - sorbet/rbi/gems/reline@0.5.9.rbi
149
+ - sorbet/rbi/gems/rexml@3.3.0.rbi
150
+ - sorbet/rbi/gems/rubocop-ast@1.31.3.rbi
151
+ - sorbet/rbi/gems/rubocop-performance@1.21.1.rbi
151
152
  - sorbet/rbi/gems/rubocop-sorbet@0.7.8.rbi
152
- - sorbet/rbi/gems/rubocop@1.62.1.rbi
153
+ - sorbet/rbi/gems/rubocop@1.64.1.rbi
153
154
  - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
154
155
  - sorbet/rbi/gems/sorbet-result@1.1.0.rbi
155
156
  - sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi
156
- - sorbet/rbi/gems/spoom@1.2.4.rbi
157
+ - sorbet/rbi/gems/spoom@1.3.2.rbi
157
158
  - sorbet/rbi/gems/standard-custom@1.0.2.rbi
158
- - sorbet/rbi/gems/standard-performance@1.3.1.rbi
159
+ - sorbet/rbi/gems/standard-performance@1.4.0.rbi
159
160
  - sorbet/rbi/gems/standard-sorbet@0.0.2.rbi
160
- - sorbet/rbi/gems/standard@1.35.1.rbi
161
- - sorbet/rbi/gems/stringio@3.1.0.rbi
162
- - sorbet/rbi/gems/syntax_tree@6.2.0.rbi
163
- - sorbet/rbi/gems/tapioca@0.12.0.rbi
161
+ - sorbet/rbi/gems/standard@1.39.0.rbi
162
+ - sorbet/rbi/gems/stringio@3.1.1.rbi
163
+ - sorbet/rbi/gems/strscan@3.1.0.rbi
164
+ - sorbet/rbi/gems/tapioca@0.14.4.rbi
164
165
  - sorbet/rbi/gems/thor@1.3.1.rbi
165
166
  - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
166
167
  - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
167
168
  - sorbet/rbi/gems/yard@0.9.36.rbi
168
- - sorbet/rbi/gems/zeitwerk@2.6.13.rbi
169
+ - sorbet/rbi/gems/zeitwerk@2.6.16.rbi
169
170
  - sorbet/tapioca/config.yml
170
171
  - sorbet/tapioca/require.rb
171
172
  homepage: https://github.com/maxveldink/sorbet-schema
@@ -185,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
186
  requirements:
186
187
  - - ">="
187
188
  - !ruby/object:Gem::Version
188
- version: '3.0'
189
+ version: '3.1'
189
190
  required_rubygems_version: !ruby/object:Gem::Requirement
190
191
  requirements:
191
192
  - - ">="