activerecord-ejection_seat 0.2.0 → 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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +11 -8
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -0
  5. data/Gemfile +2 -2
  6. data/Gemfile.lock +42 -55
  7. data/README.md +16 -6
  8. data/Rakefile +6 -6
  9. data/activerecord-ejection_seat.gemspec +40 -0
  10. data/lib/activerecord-ejection_seat/attributes_builder.rb +42 -0
  11. data/lib/activerecord-ejection_seat/ejectable.rb +7 -10
  12. data/lib/activerecord-ejection_seat/props_builder.rb +35 -23
  13. data/lib/activerecord-ejection_seat/version.rb +2 -2
  14. data/lib/activerecord-ejection_seat.rb +6 -3
  15. data/sorbet/rbi/gems/activemodel@7.0.4.1.rbi +6022 -0
  16. data/sorbet/rbi/gems/activerecord@7.0.4.1.rbi +37791 -0
  17. data/sorbet/rbi/gems/activesupport@7.0.4.1.rbi +18127 -0
  18. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11626 -2
  19. data/sorbet/rbi/gems/minitest@5.17.0.rbi +2319 -0
  20. data/sorbet/rbi/gems/{parser@3.1.3.0.rbi → parser@3.2.0.0.rbi} +907 -821
  21. data/sorbet/rbi/gems/{prettier_print@1.1.0.rbi → prettier_print@1.2.0.rbi} +0 -0
  22. data/sorbet/rbi/gems/{rubocop-ast@1.24.0.rbi → rubocop-ast@1.24.1.rbi} +702 -458
  23. data/sorbet/rbi/gems/rubocop-minitest@0.26.1.rbi +2320 -0
  24. data/sorbet/rbi/gems/{rubocop@1.41.0.rbi → rubocop@1.43.0.rbi} +2743 -625
  25. data/sorbet/rbi/gems/{ruby-lsp@0.3.7.rbi → ruby-lsp@0.3.8.rbi} +2 -1
  26. data/sorbet/rbi/gems/{sqlite3@1.5.4.rbi → sqlite3@1.6.0.rbi} +73 -0
  27. data/sorbet/rbi/gems/{syntax_tree@4.3.0.rbi → syntax_tree@5.2.0.rbi} +0 -0
  28. data/sorbet/rbi/gems/{tapioca@0.10.4.rbi → tapioca@0.10.5.rbi} +279 -96
  29. data/sorbet/rbi/gems/{unicode-display_width@2.3.0.rbi → unicode-display_width@2.4.2.rbi} +26 -7
  30. data/sorbet/rbi/gems/{unparser@0.6.5.rbi → unparser@0.6.7.rbi} +323 -64
  31. data/sorbet/rbi/gems/{yard-sorbet@0.7.0.rbi → yard-sorbet@0.8.0.rbi} +91 -41
  32. data/sorbet/rbi/shims/location.rbi +13 -0
  33. data/sorbet/rbi/shims/post.rbi +16 -0
  34. data/sorbet/rbi/shims/user.rbi +19 -0
  35. data/sorbet/rbi/todo.rbi +0 -4
  36. data/sorbet/tapioca/require.rb +16 -2
  37. metadata +29 -27
  38. data/sorbet/rbi/gems/activemodel@7.0.4.rbi +0 -8
  39. data/sorbet/rbi/gems/activerecord@7.0.4.rbi +0 -11
  40. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +0 -93
  41. data/sorbet/rbi/gems/minitest@5.16.3.rbi +0 -8
  42. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +0 -10588
  43. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +0 -7817
  44. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +0 -4994
  45. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +0 -1477
  46. data/sorbet/rbi/gems/rspec@3.12.0.rbi +0 -10
  47. data/sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi +0 -7650
@@ -170,22 +170,22 @@ class RBI::Tree < ::RBI::NodeWithComments
170
170
 
171
171
  private
172
172
 
173
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
173
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#116
174
174
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
175
175
  def create_node(node); end
176
176
 
177
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#106
177
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
178
178
  sig { returns(T::Hash[::String, ::RBI::Node]) }
179
179
  def nodes_cache; end
180
180
  end
181
181
 
182
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#121
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#126
183
183
  class RBI::TypedParam < ::T::Struct
184
184
  const :param, ::RBI::Param
185
185
  const :type, ::String
186
186
 
187
187
  class << self
188
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
188
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
189
189
  def inherited(s); end
190
190
  end
191
191
  end
@@ -232,7 +232,7 @@ module T::Private::Methods
232
232
  end
233
233
  end
234
234
 
235
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#29
235
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#29
236
236
  T::Private::Methods::ARG_NOT_PROVIDED = T.let(T.unsafe(nil), Object)
237
237
 
238
238
  class T::Private::Methods::Declaration < ::Struct
@@ -289,7 +289,7 @@ class T::Private::Methods::DeclarationBlock < ::Struct
289
289
  end
290
290
  end
291
291
 
292
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#30
292
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#30
293
293
  T::Private::Methods::PROC_TYPE = T.let(T.unsafe(nil), Object)
294
294
 
295
295
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#29
@@ -298,7 +298,7 @@ module T::Private::Methods::ProcBindPatch
298
298
  def finalize_proc(decl); end
299
299
  end
300
300
 
301
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#581
301
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#581
302
302
  T::Private::Methods::TOP_SELF = T.let(T.unsafe(nil), Object)
303
303
 
304
304
  class T::Types::Proc < ::T::Types::Base; end
@@ -372,13 +372,13 @@ end
372
372
  # source://tapioca//lib/tapioca.rb#37
373
373
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
374
374
 
375
- # source://tapioca//lib/tapioca.rb#57
375
+ # source://tapioca//lib/tapioca.rb#60
376
376
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
377
377
 
378
- # source://tapioca//lib/tapioca.rb#56
378
+ # source://tapioca//lib/tapioca.rb#59
379
379
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
380
380
 
381
- # source://tapioca//lib/tapioca.rb#55
381
+ # source://tapioca//lib/tapioca.rb#58
382
382
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
383
383
 
384
384
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -387,40 +387,40 @@ class Tapioca::Cli < ::Thor
387
387
  include ::Tapioca::ConfigHelper
388
388
  include ::Tapioca::EnvHelper
389
389
 
390
- # source://tapioca//lib/tapioca/cli.rb#327
390
+ # source://tapioca//lib/tapioca/cli.rb#332
391
391
  def __print_version; end
392
392
 
393
- # source://tapioca//lib/tapioca/cli.rb#307
393
+ # source://tapioca//lib/tapioca/cli.rb#312
394
394
  def annotations; end
395
395
 
396
- # source://tapioca//lib/tapioca/cli.rb#279
396
+ # source://tapioca//lib/tapioca/cli.rb#282
397
397
  def check_shims; end
398
398
 
399
- # source://tapioca//lib/tapioca/cli.rb#38
399
+ # source://tapioca//lib/tapioca/cli.rb#41
400
400
  def configure; end
401
401
 
402
- # source://tapioca//lib/tapioca/cli.rb#130
402
+ # source://tapioca//lib/tapioca/cli.rb#133
403
403
  def dsl(*constants); end
404
404
 
405
- # source://tapioca//lib/tapioca/cli.rb#231
405
+ # source://tapioca//lib/tapioca/cli.rb#234
406
406
  def gem(*gems); end
407
407
 
408
408
  # source://tapioca//lib/tapioca/cli.rb#27
409
409
  def init; end
410
410
 
411
- # source://tapioca//lib/tapioca/cli.rb#49
411
+ # source://tapioca//lib/tapioca/cli.rb#52
412
412
  def require; end
413
413
 
414
- # source://tapioca//lib/tapioca/cli.rb#68
414
+ # source://tapioca//lib/tapioca/cli.rb#71
415
415
  def todo; end
416
416
 
417
417
  private
418
418
 
419
- # source://tapioca//lib/tapioca/cli.rb#341
419
+ # source://tapioca//lib/tapioca/cli.rb#346
420
420
  def print_init_next_steps; end
421
421
 
422
422
  class << self
423
- # source://tapioca//lib/tapioca/cli.rb#333
423
+ # source://tapioca//lib/tapioca/cli.rb#338
424
424
  def exit_on_failure?; end
425
425
  end
426
426
  end
@@ -448,6 +448,7 @@ end
448
448
  # source://tapioca//lib/tapioca/commands.rb#5
449
449
  module Tapioca::Commands; end
450
450
 
451
+ # source://tapioca//lib/tapioca/commands/annotations.rb#6
451
452
  class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
452
453
  # source://tapioca//lib/tapioca/commands/annotations.rb#18
453
454
  sig do
@@ -528,6 +529,30 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
528
529
  def token_for(repo_uri); end
529
530
  end
530
531
 
532
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#6
533
+ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
534
+ include ::Tapioca::SorbetHelper
535
+ include ::Tapioca::RBIFilesHelper
536
+
537
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#22
538
+ sig do
539
+ params(
540
+ gem_rbi_dir: ::String,
541
+ dsl_rbi_dir: ::String,
542
+ annotations_rbi_dir: ::String,
543
+ shim_rbi_dir: ::String,
544
+ todo_rbi_file: ::String,
545
+ payload: T::Boolean,
546
+ number_of_workers: T.nilable(::Integer)
547
+ ).void
548
+ end
549
+ def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
550
+
551
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#42
552
+ sig { override.void }
553
+ def execute; end
554
+ end
555
+
531
556
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
532
557
  #
533
558
  # source://tapioca//lib/tapioca/commands/command.rb#6
@@ -632,6 +657,115 @@ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
632
657
  def spec; end
633
658
  end
634
659
 
660
+ # source://tapioca//lib/tapioca/commands/dsl.rb#6
661
+ class Tapioca::Commands::Dsl < ::Tapioca::Commands::CommandWithoutTracker
662
+ include ::Tapioca::SorbetHelper
663
+ include ::Tapioca::RBIFilesHelper
664
+
665
+ # source://tapioca//lib/tapioca/commands/dsl.rb#28
666
+ sig do
667
+ params(
668
+ requested_constants: T::Array[::String],
669
+ outpath: ::Pathname,
670
+ only: T::Array[::String],
671
+ exclude: T::Array[::String],
672
+ file_header: T::Boolean,
673
+ tapioca_path: ::String,
674
+ should_verify: T::Boolean,
675
+ quiet: T::Boolean,
676
+ verbose: T::Boolean,
677
+ number_of_workers: T.nilable(::Integer),
678
+ auto_strictness: T::Boolean,
679
+ gem_dir: ::String,
680
+ rbi_formatter: ::Tapioca::RBIFormatter,
681
+ app_root: ::String
682
+ ).void
683
+ end
684
+ def initialize(requested_constants:, outpath:, only:, exclude:, file_header:, tapioca_path:, should_verify: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil)); end
685
+
686
+ # source://tapioca//lib/tapioca/commands/dsl.rb#90
687
+ sig { override.void }
688
+ def execute; end
689
+
690
+ # source://tapioca//lib/tapioca/commands/dsl.rb#63
691
+ sig { void }
692
+ def list_compilers; end
693
+
694
+ private
695
+
696
+ # source://tapioca//lib/tapioca/commands/dsl.rb#317
697
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
698
+ def build_error_for_files(cause, files); end
699
+
700
+ # source://tapioca//lib/tapioca/commands/dsl.rb#241
701
+ sig do
702
+ params(
703
+ constant_name: ::String,
704
+ rbi: ::RBI::File,
705
+ outpath: ::Pathname,
706
+ quiet: T::Boolean
707
+ ).returns(T.nilable(::Pathname))
708
+ end
709
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
710
+
711
+ # source://tapioca//lib/tapioca/commands/dsl.rb#179
712
+ sig { params(constant_names: T::Array[::String]).returns(T::Array[::Module]) }
713
+ def constantize(constant_names); end
714
+
715
+ # source://tapioca//lib/tapioca/commands/dsl.rb#202
716
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
717
+ def constantize_compilers(compiler_names); end
718
+
719
+ # source://tapioca//lib/tapioca/commands/dsl.rb#153
720
+ sig { returns(::Tapioca::Dsl::Pipeline) }
721
+ def create_pipeline; end
722
+
723
+ # source://tapioca//lib/tapioca/commands/dsl.rb#280
724
+ sig { params(constant_name: ::String).returns(::Pathname) }
725
+ def dsl_rbi_filename(constant_name); end
726
+
727
+ # source://tapioca//lib/tapioca/commands/dsl.rb#166
728
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
729
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
730
+
731
+ # source://tapioca//lib/tapioca/commands/dsl.rb#370
732
+ sig { params(constant: ::String).returns(::String) }
733
+ def generate_command_for(constant); end
734
+
735
+ # source://tapioca//lib/tapioca/commands/dsl.rb#259
736
+ sig { params(dir: ::Pathname).void }
737
+ def perform_dsl_verification(dir); end
738
+
739
+ # source://tapioca//lib/tapioca/commands/dsl.rb#268
740
+ sig { params(files: T::Set[::Pathname]).void }
741
+ def purge_stale_dsl_rbi_files(files); end
742
+
743
+ # source://tapioca//lib/tapioca/commands/dsl.rb#365
744
+ sig { params(constant: ::String).returns(::String) }
745
+ def rbi_filename_for(constant); end
746
+
747
+ # source://tapioca//lib/tapioca/commands/dsl.rb#346
748
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
749
+ def rbi_files_in(path); end
750
+
751
+ # source://tapioca//lib/tapioca/commands/dsl.rb#326
752
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
753
+ def report_diff_and_exit_if_out_of_date(diff, command); end
754
+
755
+ # source://tapioca//lib/tapioca/commands/dsl.rb#221
756
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
757
+ def resolve(name); end
758
+
759
+ # source://tapioca//lib/tapioca/commands/dsl.rb#353
760
+ sig { params(class_name: ::String).returns(::String) }
761
+ def underscore(class_name); end
762
+
763
+ # source://tapioca//lib/tapioca/commands/dsl.rb#285
764
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
765
+ def verify_dsl_rbi(tmp_dir:); end
766
+ end
767
+
768
+ # source://tapioca//lib/tapioca/commands/gem.rb#6
635
769
  class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
636
770
  include ::Tapioca::SorbetHelper
637
771
  include ::Tapioca::RBIFilesHelper
@@ -667,11 +801,11 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
667
801
 
668
802
  private
669
803
 
670
- # source://tapioca//lib/tapioca/commands/gem.rb#281
804
+ # source://tapioca//lib/tapioca/commands/gem.rb#283
671
805
  sig { returns(T::Array[::String]) }
672
806
  def added_rbis; end
673
807
 
674
- # source://tapioca//lib/tapioca/commands/gem.rb#342
808
+ # source://tapioca//lib/tapioca/commands/gem.rb#344
675
809
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
676
810
  def build_error_for_files(cause, files); end
677
811
 
@@ -679,27 +813,27 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
679
813
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
680
814
  def compile_gem_rbi(gem); end
681
815
 
682
- # source://tapioca//lib/tapioca/commands/gem.rb#276
816
+ # source://tapioca//lib/tapioca/commands/gem.rb#278
683
817
  sig { params(gem_name: ::String).returns(::Pathname) }
684
818
  def existing_rbi(gem_name); end
685
819
 
686
- # source://tapioca//lib/tapioca/commands/gem.rb#324
820
+ # source://tapioca//lib/tapioca/commands/gem.rb#326
687
821
  sig { returns(T::Hash[::String, ::String]) }
688
822
  def existing_rbis; end
689
823
 
690
- # source://tapioca//lib/tapioca/commands/gem.rb#288
824
+ # source://tapioca//lib/tapioca/commands/gem.rb#290
691
825
  sig { params(gem_name: ::String).returns(::Pathname) }
692
826
  def expected_rbi(gem_name); end
693
827
 
694
- # source://tapioca//lib/tapioca/commands/gem.rb#330
828
+ # source://tapioca//lib/tapioca/commands/gem.rb#332
695
829
  sig { returns(T::Hash[::String, ::String]) }
696
830
  def expected_rbis; end
697
831
 
698
- # source://tapioca//lib/tapioca/commands/gem.rb#293
832
+ # source://tapioca//lib/tapioca/commands/gem.rb#295
699
833
  sig { params(gem_name: ::String).returns(T::Boolean) }
700
834
  def gem_rbi_exists?(gem_name); end
701
835
 
702
- # source://tapioca//lib/tapioca/commands/gem.rb#337
836
+ # source://tapioca//lib/tapioca/commands/gem.rb#339
703
837
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
704
838
  def gem_rbi_filename(gem_name, version); end
705
839
 
@@ -707,35 +841,69 @@ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
707
841
  sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
708
842
  def gems_to_generate(gem_names); end
709
843
 
710
- # source://tapioca//lib/tapioca/commands/gem.rb#347
844
+ # source://tapioca//lib/tapioca/commands/gem.rb#349
711
845
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
712
846
  def merge_with_exported_rbi(gem, file); end
713
847
 
714
- # source://tapioca//lib/tapioca/commands/gem.rb#318
848
+ # source://tapioca//lib/tapioca/commands/gem.rb#320
715
849
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
716
850
  def move(old_filename, new_filename); end
717
851
 
718
- # source://tapioca//lib/tapioca/commands/gem.rb#229
852
+ # source://tapioca//lib/tapioca/commands/gem.rb#231
719
853
  sig { void }
720
854
  def perform_additions; end
721
855
 
722
- # source://tapioca//lib/tapioca/commands/gem.rb#202
856
+ # source://tapioca//lib/tapioca/commands/gem.rb#204
723
857
  sig { void }
724
858
  def perform_removals; end
725
859
 
726
- # source://tapioca//lib/tapioca/commands/gem.rb#183
860
+ # source://tapioca//lib/tapioca/commands/gem.rb#185
727
861
  sig { params(exclude: T::Array[::String]).void }
728
862
  def perform_sync_verification(exclude: T.unsafe(nil)); end
729
863
 
730
- # source://tapioca//lib/tapioca/commands/gem.rb#271
864
+ # source://tapioca//lib/tapioca/commands/gem.rb#273
731
865
  sig { returns(T::Array[::String]) }
732
866
  def removed_rbis; end
733
867
 
734
- # source://tapioca//lib/tapioca/commands/gem.rb#298
868
+ # source://tapioca//lib/tapioca/commands/gem.rb#300
735
869
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
736
870
  def report_diff_and_exit_if_out_of_date(diff, command); end
737
871
  end
738
872
 
873
+ # source://tapioca//lib/tapioca/commands/require.rb#6
874
+ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
875
+ # source://tapioca//lib/tapioca/commands/require.rb#13
876
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
877
+ def initialize(requires_path:, sorbet_config_path:); end
878
+
879
+ # source://tapioca//lib/tapioca/commands/require.rb#21
880
+ sig { override.void }
881
+ def execute; end
882
+ end
883
+
884
+ # source://tapioca//lib/tapioca/commands/todo.rb#6
885
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
886
+ include ::Tapioca::SorbetHelper
887
+
888
+ # source://tapioca//lib/tapioca/commands/todo.rb#15
889
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
890
+ def initialize(todo_file:, file_header:); end
891
+
892
+ # source://tapioca//lib/tapioca/commands/todo.rb#23
893
+ sig { override.void }
894
+ def execute; end
895
+
896
+ private
897
+
898
+ # source://tapioca//lib/tapioca/commands/todo.rb#49
899
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
900
+ def rbi(constants, command:); end
901
+
902
+ # source://tapioca//lib/tapioca/commands/todo.rb#69
903
+ sig { returns(T::Array[::String]) }
904
+ def unresolved_constants; end
905
+ end
906
+
739
907
  # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
740
908
  module Tapioca::ConfigHelper
741
909
  requires_ancestor { Thor }
@@ -806,7 +974,7 @@ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
806
974
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
807
975
 
808
976
  class << self
809
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
977
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
810
978
  def inherited(s); end
811
979
  end
812
980
  end
@@ -817,7 +985,7 @@ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
817
985
  const :colors, T::Array[::Symbol]
818
986
 
819
987
  class << self
820
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
988
+ # source://sorbet-runtime/0.5.10624/lib/types/struct.rb#13
821
989
  def inherited(s); end
822
990
  end
823
991
  end
@@ -828,7 +996,7 @@ Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
828
996
  # source://tapioca//lib/tapioca.rb#40
829
997
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
830
998
 
831
- # source://tapioca//lib/tapioca.rb#53
999
+ # source://tapioca//lib/tapioca.rb#56
832
1000
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
833
1001
 
834
1002
  # source://tapioca//lib/tapioca.rb#41
@@ -846,7 +1014,7 @@ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
846
1014
  # source://tapioca//lib/tapioca/rbi_formatter.rb#29
847
1015
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
848
1016
 
849
- # source://tapioca//lib/tapioca.rb#52
1017
+ # source://tapioca//lib/tapioca.rb#55
850
1018
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
851
1019
 
852
1020
  # source://tapioca//lib/tapioca.rb#42
@@ -1104,7 +1272,7 @@ end
1104
1272
  class Tapioca::Gem::Event
1105
1273
  abstract!
1106
1274
 
1107
- # source://sorbet-runtime/0.5.10597/lib/types/private/abstract/declare.rb#37
1275
+ # source://sorbet-runtime/0.5.10624/lib/types/private/abstract/declare.rb#37
1108
1276
  def initialize(*args, **_arg1, &blk); end
1109
1277
  end
1110
1278
 
@@ -1445,29 +1613,29 @@ end
1445
1613
 
1446
1614
  # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1447
1615
  class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1448
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1616
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1449
1617
  sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1450
1618
  def initialize(pipeline); end
1451
1619
 
1452
1620
  private
1453
1621
 
1454
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#51
1622
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#54
1455
1623
  sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1456
1624
  def documentation_comments(name, sigs: T.unsafe(nil)); end
1457
1625
 
1458
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#95
1626
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#98
1459
1627
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1460
1628
  def ignore?(event); end
1461
1629
 
1462
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#32
1630
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#35
1463
1631
  sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1464
1632
  def on_const(event); end
1465
1633
 
1466
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#42
1634
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#45
1467
1635
  sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1468
1636
  def on_method(event); end
1469
1637
 
1470
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#37
1638
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#40
1471
1639
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1472
1640
  def on_scope(event); end
1473
1641
  end
@@ -1475,7 +1643,7 @@ end
1475
1643
  # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1476
1644
  Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1477
1645
 
1478
- # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#21
1646
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1479
1647
  Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1480
1648
 
1481
1649
  # source://tapioca//lib/tapioca/gem/events.rb#105
@@ -1812,90 +1980,90 @@ end
1812
1980
  class Tapioca::Gemfile::GemSpec
1813
1981
  include ::Tapioca::GemHelper
1814
1982
 
1815
- # source://tapioca//lib/tapioca/gemfile.rb#170
1983
+ # source://tapioca//lib/tapioca/gemfile.rb#174
1816
1984
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
1817
1985
  def initialize(spec); end
1818
1986
 
1819
- # source://tapioca//lib/tapioca/gemfile.rb#180
1987
+ # source://tapioca//lib/tapioca/gemfile.rb#184
1820
1988
  sig { params(other: ::BasicObject).returns(T::Boolean) }
1821
1989
  def ==(other); end
1822
1990
 
1823
- # source://tapioca//lib/tapioca/gemfile.rb#200
1991
+ # source://tapioca//lib/tapioca/gemfile.rb#204
1824
1992
  sig { params(path: ::String).returns(T::Boolean) }
1825
1993
  def contains_path?(path); end
1826
1994
 
1827
- # source://tapioca//lib/tapioca/gemfile.rb#219
1995
+ # source://tapioca//lib/tapioca/gemfile.rb#223
1828
1996
  sig { returns(T::Boolean) }
1829
1997
  def export_rbi_files?; end
1830
1998
 
1831
- # source://tapioca//lib/tapioca/gemfile.rb#214
1999
+ # source://tapioca//lib/tapioca/gemfile.rb#218
1832
2000
  sig { returns(T::Array[::String]) }
1833
2001
  def exported_rbi_files; end
1834
2002
 
1835
- # source://tapioca//lib/tapioca/gemfile.rb#224
2003
+ # source://tapioca//lib/tapioca/gemfile.rb#228
1836
2004
  sig { returns(::RBI::MergeTree) }
1837
2005
  def exported_rbi_tree; end
1838
2006
 
1839
- # source://tapioca//lib/tapioca/gemfile.rb#167
2007
+ # source://tapioca//lib/tapioca/gemfile.rb#171
1840
2008
  sig { returns(T::Array[::Pathname]) }
1841
2009
  def files; end
1842
2010
 
1843
- # source://tapioca//lib/tapioca/gemfile.rb#164
2011
+ # source://tapioca//lib/tapioca/gemfile.rb#168
1844
2012
  sig { returns(::String) }
1845
2013
  def full_gem_path; end
1846
2014
 
1847
- # source://tapioca//lib/tapioca/gemfile.rb#185
2015
+ # source://tapioca//lib/tapioca/gemfile.rb#189
1848
2016
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
1849
2017
  def ignore?(gemfile_dir); end
1850
2018
 
1851
- # source://tapioca//lib/tapioca/gemfile.rb#190
2019
+ # source://tapioca//lib/tapioca/gemfile.rb#194
1852
2020
  sig { returns(::String) }
1853
2021
  def name; end
1854
2022
 
1855
- # source://tapioca//lib/tapioca/gemfile.rb#209
2023
+ # source://tapioca//lib/tapioca/gemfile.rb#213
1856
2024
  sig { void }
1857
2025
  def parse_yard_docs; end
1858
2026
 
1859
- # source://tapioca//lib/tapioca/gemfile.rb#195
2027
+ # source://tapioca//lib/tapioca/gemfile.rb#199
1860
2028
  sig { returns(::String) }
1861
2029
  def rbi_file_name; end
1862
2030
 
1863
- # source://tapioca//lib/tapioca/gemfile.rb#236
2031
+ # source://tapioca//lib/tapioca/gemfile.rb#240
1864
2032
  sig { params(file: ::Pathname).returns(::Pathname) }
1865
2033
  def relative_path_for(file); end
1866
2034
 
1867
2035
  # @return [String]
1868
2036
  #
1869
- # source://tapioca//lib/tapioca/gemfile.rb#164
2037
+ # source://tapioca//lib/tapioca/gemfile.rb#168
1870
2038
  def version; end
1871
2039
 
1872
2040
  private
1873
2041
 
1874
- # source://tapioca//lib/tapioca/gemfile.rb#247
2042
+ # source://tapioca//lib/tapioca/gemfile.rb#251
1875
2043
  sig { returns(T::Array[::Pathname]) }
1876
2044
  def collect_files; end
1877
2045
 
1878
- # source://tapioca//lib/tapioca/gemfile.rb#262
2046
+ # source://tapioca//lib/tapioca/gemfile.rb#266
1879
2047
  sig { returns(T.nilable(T::Boolean)) }
1880
2048
  def default_gem?; end
1881
2049
 
1882
- # source://tapioca//lib/tapioca/gemfile.rb#320
2050
+ # source://tapioca//lib/tapioca/gemfile.rb#324
1883
2051
  sig { returns(T::Boolean) }
1884
2052
  def gem_ignored?; end
1885
2053
 
1886
- # source://tapioca//lib/tapioca/gemfile.rb#299
2054
+ # source://tapioca//lib/tapioca/gemfile.rb#303
1887
2055
  sig { params(path: ::String).returns(T::Boolean) }
1888
2056
  def has_parent_gemspec?(path); end
1889
2057
 
1890
- # source://tapioca//lib/tapioca/gemfile.rb#267
2058
+ # source://tapioca//lib/tapioca/gemfile.rb#271
1891
2059
  sig { returns(::Regexp) }
1892
2060
  def require_paths_prefix_matcher; end
1893
2061
 
1894
- # source://tapioca//lib/tapioca/gemfile.rb#278
2062
+ # source://tapioca//lib/tapioca/gemfile.rb#282
1895
2063
  sig { params(file: ::String).returns(::Pathname) }
1896
2064
  def resolve_to_ruby_lib_dir(file); end
1897
2065
 
1898
- # source://tapioca//lib/tapioca/gemfile.rb#292
2066
+ # source://tapioca//lib/tapioca/gemfile.rb#296
1899
2067
  sig { returns(::String) }
1900
2068
  def version_string; end
1901
2069
 
@@ -1952,7 +2120,7 @@ end
1952
2120
 
1953
2121
  # source://tapioca//lib/tapioca/loaders/gem.rb#6
1954
2122
  class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
1955
- # source://tapioca//lib/tapioca/loaders/gem.rb#44
2123
+ # source://tapioca//lib/tapioca/loaders/gem.rb#46
1956
2124
  sig do
1957
2125
  params(
1958
2126
  bundle: ::Tapioca::Gemfile,
@@ -1963,17 +2131,17 @@ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
1963
2131
  end
1964
2132
  def initialize(bundle:, prerequire:, postrequire:, default_command:); end
1965
2133
 
1966
- # source://tapioca//lib/tapioca/loaders/gem.rb#30
2134
+ # source://tapioca//lib/tapioca/loaders/gem.rb#32
1967
2135
  sig { override.void }
1968
2136
  def load; end
1969
2137
 
1970
2138
  protected
1971
2139
 
1972
- # source://tapioca//lib/tapioca/loaders/gem.rb#74
2140
+ # source://tapioca//lib/tapioca/loaders/gem.rb#76
1973
2141
  sig { params(file: ::String, error: ::LoadError).void }
1974
2142
  def explain_failed_require(file, error); end
1975
2143
 
1976
- # source://tapioca//lib/tapioca/loaders/gem.rb#54
2144
+ # source://tapioca//lib/tapioca/loaders/gem.rb#56
1977
2145
  sig { void }
1978
2146
  def require_gem_file; end
1979
2147
 
@@ -2005,7 +2173,7 @@ class Tapioca::Loaders::Loader
2005
2173
 
2006
2174
  abstract!
2007
2175
 
2008
- # source://sorbet-runtime/0.5.10597/lib/types/private/abstract/declare.rb#37
2176
+ # source://sorbet-runtime/0.5.10624/lib/types/private/abstract/declare.rb#37
2009
2177
  def initialize(*args, **_arg1, &blk); end
2010
2178
 
2011
2179
  # @abstract
@@ -2016,7 +2184,7 @@ class Tapioca::Loaders::Loader
2016
2184
 
2017
2185
  private
2018
2186
 
2019
- # source://tapioca//lib/tapioca/loaders/loader.rb#109
2187
+ # source://tapioca//lib/tapioca/loaders/loader.rb#112
2020
2188
  sig { void }
2021
2189
  def eager_load_rails_app; end
2022
2190
 
@@ -2034,23 +2202,23 @@ class Tapioca::Loaders::Loader
2034
2202
  sig { params(environment_load: T::Boolean, eager_load: T::Boolean, app_root: ::String).void }
2035
2203
  def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil)); end
2036
2204
 
2037
- # source://tapioca//lib/tapioca/loaders/loader.rb#57
2205
+ # source://tapioca//lib/tapioca/loaders/loader.rb#60
2038
2206
  sig { void }
2039
2207
  def load_rails_engines; end
2040
2208
 
2041
- # source://tapioca//lib/tapioca/loaders/loader.rb#80
2209
+ # source://tapioca//lib/tapioca/loaders/loader.rb#83
2042
2210
  sig { returns(T::Array[T.untyped]) }
2043
2211
  def rails_engines; end
2044
2212
 
2045
- # source://tapioca//lib/tapioca/loaders/loader.rb#135
2213
+ # source://tapioca//lib/tapioca/loaders/loader.rb#138
2046
2214
  sig { params(file: T.nilable(::String)).void }
2047
2215
  def require_helper(file); end
2048
2216
 
2049
- # source://tapioca//lib/tapioca/loaders/loader.rb#94
2217
+ # source://tapioca//lib/tapioca/loaders/loader.rb#97
2050
2218
  sig { params(path: ::String).void }
2051
2219
  def safe_require(path); end
2052
2220
 
2053
- # source://tapioca//lib/tapioca/loaders/loader.rb#101
2221
+ # source://tapioca//lib/tapioca/loaders/loader.rb#104
2054
2222
  sig { void }
2055
2223
  def silence_deprecations; end
2056
2224
  end
@@ -2105,11 +2273,11 @@ module Tapioca::RBIFilesHelper
2105
2273
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2106
2274
  def extract_methods_and_attrs(nodes); end
2107
2275
 
2108
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#221
2276
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2109
2277
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2110
2278
  def extract_mixins(nodes); end
2111
2279
 
2112
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2280
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2113
2281
  sig do
2114
2282
  params(
2115
2283
  nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
@@ -2127,7 +2295,7 @@ module Tapioca::RBIFilesHelper
2127
2295
  end
2128
2296
  def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2129
2297
 
2130
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#260
2298
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2131
2299
  sig { params(path: ::String).returns(::String) }
2132
2300
  def gem_name_from_rbi_path(path); end
2133
2301
 
@@ -2139,7 +2307,7 @@ module Tapioca::RBIFilesHelper
2139
2307
  sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2140
2308
  def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2141
2309
 
2142
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#233
2310
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2143
2311
  sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2144
2312
  def update_gem_rbis_strictnesses(errors, gem_dir); end
2145
2313
  end
@@ -2585,13 +2753,22 @@ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMe
2585
2753
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
2586
2754
  module Tapioca::Runtime::Trackers
2587
2755
  class << self
2588
- # source://tapioca//lib/tapioca/runtime/trackers.rb#17
2756
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
2589
2757
  sig { void }
2590
2758
  def disable_all!; end
2591
2759
 
2592
- # source://tapioca//lib/tapioca/runtime/trackers.rb#22
2760
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
2593
2761
  sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
2594
2762
  def register_tracker(tracker); end
2763
+
2764
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
2765
+ sig do
2766
+ type_parameters(:Return)
2767
+ .params(
2768
+ blk: T.proc.returns(T.type_parameter(:Return))
2769
+ ).returns(T.type_parameter(:Return))
2770
+ end
2771
+ def with_trackers_enabled(&blk); end
2595
2772
  end
2596
2773
  end
2597
2774
 
@@ -2768,15 +2945,15 @@ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
2768
2945
 
2769
2946
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
2770
2947
  module Tapioca::SorbetHelper
2771
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#28
2948
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#31
2772
2949
  sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
2773
2950
  def sorbet(*sorbet_args); end
2774
2951
 
2775
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#33
2952
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#36
2776
2953
  sig { returns(::String) }
2777
2954
  def sorbet_path; end
2778
2955
 
2779
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#40
2956
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#43
2780
2957
  sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
2781
2958
  def sorbet_supports?(feature, version: T.unsafe(nil)); end
2782
2959
  end
@@ -2850,7 +3027,7 @@ module Tapioca::Static::SymbolLoader
2850
3027
 
2851
3028
  # @return [Array<T.class_of(Rails::Engine)>]
2852
3029
  #
2853
- # source://sorbet-runtime/0.5.10597/lib/types/private/methods/_methods.rb#250
3030
+ # source://sorbet-runtime/0.5.10624/lib/types/private/methods/_methods.rb#250
2854
3031
  def engines(*args, **_arg1, &blk); end
2855
3032
 
2856
3033
  # source://tapioca//lib/tapioca/static/symbol_loader.rb#59
@@ -2992,30 +3169,30 @@ end
2992
3169
 
2993
3170
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
2994
3171
  class URI::Source < ::URI::File
2995
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3172
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
2996
3173
  sig { params(v: T.nilable(::String)).returns(T::Boolean) }
2997
3174
  def check_host(v); end
2998
3175
 
2999
- # source://uri/0.11.0/uri/generic.rb#243
3176
+ # source://uri/0.12.0/uri/generic.rb#243
3000
3177
  def gem_name; end
3001
3178
 
3002
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#22
3179
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3003
3180
  sig { returns(T.nilable(::String)) }
3004
3181
  def gem_version; end
3005
3182
 
3006
- # source://uri/0.11.0/uri/generic.rb#283
3183
+ # source://uri/0.12.0/uri/generic.rb#283
3007
3184
  def line_number; end
3008
3185
 
3009
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#48
3186
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3010
3187
  sig { params(v: T.nilable(::String)).void }
3011
3188
  def set_path(v); end
3012
3189
 
3013
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#67
3190
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3014
3191
  sig { returns(::String) }
3015
3192
  def to_s; end
3016
3193
 
3017
3194
  class << self
3018
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#35
3195
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3019
3196
  sig do
3020
3197
  params(
3021
3198
  gem_name: ::String,
@@ -3030,3 +3207,9 @@ end
3030
3207
 
3031
3208
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3032
3209
  URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3210
+
3211
+ # source://uri/0.12.0/uri/common.rb#303
3212
+ URI::TBLENCURICOMP_ = T.let(T.unsafe(nil), Hash)
3213
+
3214
+ # source://uri/0.12.0/uri/wss.rb#19
3215
+ URI::WSS::DEFAULT_PORT = T.let(T.unsafe(nil), Integer)