sorbet-rails 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sorbet-rails/active_record_rbi_formatter.rb +295 -0
  3. data/lib/sorbet-rails/config.rb +0 -1
  4. data/lib/sorbet-rails/custom_types/boolean_string.rb +10 -0
  5. data/lib/sorbet-rails/custom_types/integer_string.rb +10 -0
  6. data/lib/sorbet-rails/dependent_gem_rbis/activerecord.rbi +11 -0
  7. data/lib/sorbet-rails/deprecation.rb +5 -0
  8. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +27 -6
  9. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +20 -8
  10. data/lib/sorbet-rails/model_plugins/base.rb +9 -0
  11. data/lib/sorbet-rails/model_plugins/enumerable_collections.rb +0 -50
  12. data/lib/sorbet-rails/model_plugins/plugins.rb +0 -3
  13. data/lib/sorbet-rails/model_rbi_formatter.rb +2 -2
  14. data/lib/sorbet-rails/model_utils.rb +15 -6
  15. data/lib/sorbet-rails/rails_mixins/custom_params_methods.rb +11 -0
  16. data/lib/sorbet-rails/tasks/rails_rbi.rake +20 -4
  17. data/sorbet-rails.gemspec +2 -2
  18. data/spec/active_record_rbi_formatter_spec.rb +24 -0
  19. data/spec/generators/rails-template.rb +88 -1
  20. data/spec/generators/sorbet_test_cases.rb +146 -42
  21. data/spec/model_rbi_formatter_spec.rb +1 -1
  22. data/spec/rails_helper.rb +14 -1
  23. data/spec/rake_rails_rbi_active_record_spec.rb +21 -0
  24. data/spec/rake_rails_rbi_models_spec.rb +7 -0
  25. data/spec/sorbet_spec.rb +12 -1
  26. data/spec/support/v5.0/Gemfile.lock +8 -8
  27. data/spec/support/v5.0/app/models/headmaster.rb +8 -0
  28. data/spec/support/v5.0/app/models/school.rb +2 -0
  29. data/spec/support/v5.0/app/models/spell.rb +5 -0
  30. data/spec/support/v5.0/app/models/spell_book.rb +3 -0
  31. data/spec/support/v5.0/app/models/subject.rb +5 -0
  32. data/spec/support/v5.0/app/models/wizard.rb +6 -1
  33. data/spec/support/v5.0/db/migrate/20190620000010_add_subject.rb +8 -0
  34. data/spec/support/v5.0/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  35. data/spec/support/v5.0/db/migrate/20190620000012_add_spell.rb +8 -0
  36. data/spec/support/v5.0/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  37. data/spec/support/v5.0/db/migrate/20190620000014_create_headmasters.rb +9 -0
  38. data/spec/support/v5.0/db/schema.rb +28 -1
  39. data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +1 -1
  40. data/spec/support/v5.0/sorbet_test_cases.rb +146 -42
  41. data/spec/support/v5.1/Gemfile.lock +8 -8
  42. data/spec/support/v5.1/app/models/headmaster.rb +8 -0
  43. data/spec/support/v5.1/app/models/school.rb +2 -0
  44. data/spec/support/v5.1/app/models/spell.rb +5 -0
  45. data/spec/support/v5.1/app/models/spell_book.rb +3 -0
  46. data/spec/support/v5.1/app/models/subject.rb +5 -0
  47. data/spec/support/v5.1/app/models/wizard.rb +6 -1
  48. data/spec/support/v5.1/db/migrate/20190620000010_add_subject.rb +8 -0
  49. data/spec/support/v5.1/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  50. data/spec/support/v5.1/db/migrate/20190620000012_add_spell.rb +8 -0
  51. data/spec/support/v5.1/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  52. data/spec/support/v5.1/db/migrate/20190620000014_create_headmasters.rb +9 -0
  53. data/spec/support/v5.1/db/schema.rb +28 -1
  54. data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +1 -1
  55. data/spec/support/v5.1/sorbet_test_cases.rb +146 -42
  56. data/spec/support/v5.2/Gemfile +1 -1
  57. data/spec/support/v5.2/Gemfile.lock +9 -9
  58. data/spec/support/v5.2/app/models/headmaster.rb +8 -0
  59. data/spec/support/v5.2/app/models/school.rb +2 -0
  60. data/spec/support/v5.2/app/models/spell.rb +5 -0
  61. data/spec/support/v5.2/app/models/spell_book.rb +3 -0
  62. data/spec/support/v5.2/app/models/subject.rb +5 -0
  63. data/spec/support/v5.2/app/models/wizard.rb +5 -0
  64. data/spec/support/v5.2/config/puma.rb +3 -0
  65. data/spec/support/v5.2/db/migrate/20190620000010_add_subject.rb +8 -0
  66. data/spec/support/v5.2/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  67. data/spec/support/v5.2/db/migrate/20190620000012_add_spell.rb +8 -0
  68. data/spec/support/v5.2/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  69. data/spec/support/v5.2/db/migrate/20190620000014_create_headmasters.rb +9 -0
  70. data/spec/support/v5.2/db/schema.rb +28 -1
  71. data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +1 -1
  72. data/spec/support/v5.2/sorbet_test_cases.rb +146 -42
  73. data/spec/support/v6.0/Gemfile.lock +8 -8
  74. data/spec/support/v6.0/app/models/headmaster.rb +8 -0
  75. data/spec/support/v6.0/app/models/school.rb +2 -0
  76. data/spec/support/v6.0/app/models/spell.rb +5 -0
  77. data/spec/support/v6.0/app/models/spell_book.rb +3 -0
  78. data/spec/support/v6.0/app/models/subject.rb +5 -0
  79. data/spec/support/v6.0/app/models/wizard.rb +6 -1
  80. data/spec/support/v6.0/db/migrate/20190620000010_add_subject.rb +8 -0
  81. data/spec/support/v6.0/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  82. data/spec/support/v6.0/db/migrate/20190620000012_add_spell.rb +8 -0
  83. data/spec/support/v6.0/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  84. data/spec/support/v6.0/db/migrate/20190620000014_create_headmasters.rb +9 -0
  85. data/spec/support/v6.0/db/schema.rb +28 -1
  86. data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +1 -1
  87. data/spec/support/v6.0/sorbet_test_cases.rb +146 -42
  88. data/spec/test_data/v5.0/expected_active_record_base.rbi +113 -0
  89. data/spec/test_data/v5.0/expected_active_record_relation.rbi +199 -0
  90. data/spec/test_data/v5.0/expected_habtm_subjects.rbi +660 -0
  91. data/spec/test_data/v5.0/expected_habtm_wizards.rbi +660 -0
  92. data/spec/test_data/v5.0/expected_headmaster.rbi +452 -0
  93. data/spec/test_data/v5.0/expected_internal_metadata.rbi +0 -217
  94. data/spec/test_data/v5.0/expected_potion.rbi +0 -217
  95. data/spec/test_data/v5.0/expected_robe.rbi +0 -217
  96. data/spec/test_data/v5.0/expected_schema_migration.rbi +0 -217
  97. data/spec/test_data/v5.0/expected_school.rbi +11 -217
  98. data/spec/test_data/v5.0/expected_spell.rbi +440 -0
  99. data/spec/test_data/v5.0/expected_spell/habtm_spell_books.rbi +443 -0
  100. data/spec/test_data/v5.0/expected_spell_book.rbi +14 -222
  101. data/spec/test_data/v5.0/expected_spell_book/habtm_spell_books.rbi +637 -0
  102. data/spec/test_data/v5.0/expected_spell_book/habtm_spells.rbi +443 -0
  103. data/spec/test_data/v5.0/expected_squib.rbi +14 -219
  104. data/spec/test_data/v5.0/expected_subject.rbi +440 -0
  105. data/spec/test_data/v5.0/expected_subject/habtm_wizards.rbi +443 -0
  106. data/spec/test_data/v5.0/expected_wand.rbi +4 -221
  107. data/spec/test_data/v5.0/expected_wizard.rbi +36 -240
  108. data/spec/test_data/v5.0/expected_wizard/habtm_subjects.rbi +443 -0
  109. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +30 -240
  110. data/spec/test_data/v5.1/expected_active_record_base.rbi +113 -0
  111. data/spec/test_data/v5.1/expected_active_record_relation.rbi +178 -0
  112. data/spec/test_data/v5.1/expected_habtm_subjects.rbi +672 -0
  113. data/spec/test_data/v5.1/expected_habtm_wizards.rbi +672 -0
  114. data/spec/test_data/v5.1/expected_headmaster.rbi +464 -0
  115. data/spec/test_data/v5.1/expected_internal_metadata.rbi +0 -217
  116. data/spec/test_data/v5.1/expected_potion.rbi +0 -217
  117. data/spec/test_data/v5.1/expected_robe.rbi +0 -217
  118. data/spec/test_data/v5.1/expected_schema_migration.rbi +0 -217
  119. data/spec/test_data/v5.1/expected_school.rbi +11 -217
  120. data/spec/test_data/v5.1/expected_spell.rbi +452 -0
  121. data/spec/test_data/v5.1/expected_spell/habtm_spell_books.rbi +455 -0
  122. data/spec/test_data/v5.1/expected_spell_book.rbi +14 -222
  123. data/spec/test_data/v5.1/expected_spell_book/habtm_spell_books.rbi +649 -0
  124. data/spec/test_data/v5.1/expected_spell_book/habtm_spells.rbi +455 -0
  125. data/spec/test_data/v5.1/expected_squib.rbi +14 -219
  126. data/spec/test_data/v5.1/expected_subject.rbi +452 -0
  127. data/spec/test_data/v5.1/expected_subject/habtm_wizards.rbi +455 -0
  128. data/spec/test_data/v5.1/expected_wand.rbi +4 -221
  129. data/spec/test_data/v5.1/expected_wizard.rbi +36 -240
  130. data/spec/test_data/v5.1/expected_wizard/habtm_subjects.rbi +455 -0
  131. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +30 -240
  132. data/spec/test_data/v5.2/expected_active_record_base.rbi +113 -0
  133. data/spec/test_data/v5.2/expected_active_record_relation.rbi +175 -0
  134. data/spec/test_data/v5.2/expected_attachment.rbi +0 -217
  135. data/spec/test_data/v5.2/expected_blob.rbi +3 -217
  136. data/spec/test_data/v5.2/expected_habtm_subjects.rbi +672 -0
  137. data/spec/test_data/v5.2/expected_habtm_wizards.rbi +672 -0
  138. data/spec/test_data/v5.2/expected_headmaster.rbi +464 -0
  139. data/spec/test_data/v5.2/expected_internal_metadata.rbi +0 -217
  140. data/spec/test_data/v5.2/expected_potion.rbi +0 -217
  141. data/spec/test_data/v5.2/expected_robe.rbi +0 -217
  142. data/spec/test_data/v5.2/expected_schema_migration.rbi +0 -217
  143. data/spec/test_data/v5.2/expected_school.rbi +11 -217
  144. data/spec/test_data/v5.2/expected_spell.rbi +452 -0
  145. data/spec/test_data/v5.2/expected_spell/habtm_spell_books.rbi +455 -0
  146. data/spec/test_data/v5.2/expected_spell_book.rbi +14 -222
  147. data/spec/test_data/v5.2/expected_spell_book/habtm_spell_books.rbi +649 -0
  148. data/spec/test_data/v5.2/expected_spell_book/habtm_spells.rbi +455 -0
  149. data/spec/test_data/v5.2/expected_squib.rbi +20 -219
  150. data/spec/test_data/v5.2/expected_subject.rbi +452 -0
  151. data/spec/test_data/v5.2/expected_subject/habtm_wizards.rbi +455 -0
  152. data/spec/test_data/v5.2/expected_wand.rbi +4 -221
  153. data/spec/test_data/v5.2/expected_wizard.rbi +42 -240
  154. data/spec/test_data/v5.2/expected_wizard/habtm_subjects.rbi +455 -0
  155. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +36 -240
  156. data/spec/test_data/v6.0/expected_active_record_base.rbi +113 -0
  157. data/spec/test_data/v6.0/expected_active_record_relation.rbi +175 -0
  158. data/spec/test_data/v6.0/expected_attachment.rbi +0 -217
  159. data/spec/test_data/v6.0/expected_blob.rbi +3 -217
  160. data/spec/test_data/v6.0/expected_habtm_subjects.rbi +720 -0
  161. data/spec/test_data/v6.0/expected_habtm_wizards.rbi +720 -0
  162. data/spec/test_data/v6.0/expected_headmaster.rbi +512 -0
  163. data/spec/test_data/v6.0/expected_internal_metadata.rbi +0 -217
  164. data/spec/test_data/v6.0/expected_potion.rbi +0 -217
  165. data/spec/test_data/v6.0/expected_robe.rbi +0 -217
  166. data/spec/test_data/v6.0/expected_schema_migration.rbi +0 -217
  167. data/spec/test_data/v6.0/expected_school.rbi +11 -217
  168. data/spec/test_data/v6.0/expected_spell.rbi +500 -0
  169. data/spec/test_data/v6.0/expected_spell/habtm_spell_books.rbi +503 -0
  170. data/spec/test_data/v6.0/expected_spell_book.rbi +14 -222
  171. data/spec/test_data/v6.0/expected_spell_book/habtm_spell_books.rbi +697 -0
  172. data/spec/test_data/v6.0/expected_spell_book/habtm_spells.rbi +503 -0
  173. data/spec/test_data/v6.0/expected_squib.rbi +20 -219
  174. data/spec/test_data/v6.0/expected_subject.rbi +500 -0
  175. data/spec/test_data/v6.0/expected_subject/habtm_wizards.rbi +503 -0
  176. data/spec/test_data/v6.0/expected_wand.rbi +4 -221
  177. data/spec/test_data/v6.0/expected_wizard.rbi +42 -240
  178. data/spec/test_data/v6.0/expected_wizard/habtm_subjects.rbi +503 -0
  179. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +36 -240
  180. metadata +169 -14
  181. data/lib/bundled_rbi/active_record_base.rbi +0 -83
  182. data/lib/bundled_rbi/active_record_relation.rbi +0 -122
  183. data/lib/sorbet-rails/model_plugins/active_record_finder_methods.rb +0 -131
  184. data/spec/support/v5.0/typed-override.yaml +0 -2
  185. data/spec/support/v5.1/typed-override.yaml +0 -2
  186. data/spec/support/v5.2/typed-override.yaml +0 -2
  187. data/spec/support/v6.0/typed-override.yaml +0 -2
@@ -176,10 +176,10 @@ end
176
176
 
177
177
  class Wand::CoreType < T::Enum
178
178
  enums do
179
- PhoenixFeather = new('phoenix_feather')
180
- DragonHeartstring = new('dragon_heartstring')
181
- UnicornTailHair = new('unicorn_tail_hair')
182
- BasiliskHorn = new('basilisk_horn')
179
+ PhoenixFeather = new(%q{phoenix_feather})
180
+ DragonHeartstring = new(%q{dragon_heartstring})
181
+ UnicornTailHair = new(%q{unicorn_tail_hair})
182
+ BasiliskHorn = new(%q{basilisk_horn})
183
183
  end
184
184
 
185
185
  end
@@ -352,24 +352,6 @@ class Wand < ApplicationRecord
352
352
  sig { params(value: T.nilable(Wand::CoreType)).void }
353
353
  def typed_core_type=(value); end
354
354
 
355
- sig { params(conditions: T.untyped).returns(T::Boolean) }
356
- def self.exists?(conditions = nil); end
357
-
358
- sig { params(args: T.untyped).returns(T::Boolean) }
359
- def self.any?(*args); end
360
-
361
- sig { params(args: T.untyped).returns(T::Boolean) }
362
- def self.many?(*args); end
363
-
364
- sig { params(args: T.untyped).returns(T::Boolean) }
365
- def self.none?(*args); end
366
-
367
- sig { params(args: T.untyped).returns(T::Boolean) }
368
- def self.one?(*args); end
369
-
370
- sig { params(args: T.untyped).returns(T::Boolean) }
371
- def self.empty?(*args); end
372
-
373
355
  sig { returns(T::Array[Wand]) }
374
356
  def self.mythicals; end
375
357
  end
@@ -377,7 +359,6 @@ end
377
359
  class Wand::ActiveRecord_Relation < ActiveRecord::Relation
378
360
  include Wand::ActiveRelation_WhereNot
379
361
  include Wand::CustomFinderMethods
380
- include Enumerable
381
362
  extend T::Sig
382
363
  extend T::Generic
383
364
  Elem = type_member(fixed: Wand)
@@ -504,30 +485,11 @@ class Wand::ActiveRecord_Relation < ActiveRecord::Relation
504
485
 
505
486
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_Relation) }
506
487
  def extending(*args, &block); end
507
-
508
- sig { params(conditions: T.untyped).returns(T::Boolean) }
509
- def exists?(conditions = nil); end
510
-
511
- sig { params(args: T.untyped).returns(T::Boolean) }
512
- def any?(*args); end
513
-
514
- sig { params(args: T.untyped).returns(T::Boolean) }
515
- def many?(*args); end
516
-
517
- sig { params(args: T.untyped).returns(T::Boolean) }
518
- def none?(*args); end
519
-
520
- sig { params(args: T.untyped).returns(T::Boolean) }
521
- def one?(*args); end
522
-
523
- sig { params(args: T.untyped).returns(T::Boolean) }
524
- def empty?(*args); end
525
488
  end
526
489
 
527
490
  class Wand::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
528
491
  include Wand::ActiveRelation_WhereNot
529
492
  include Wand::CustomFinderMethods
530
- include Enumerable
531
493
  extend T::Sig
532
494
  extend T::Generic
533
495
  Elem = type_member(fixed: Wand)
@@ -654,100 +616,10 @@ class Wand::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
654
616
 
655
617
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_AssociationRelation) }
656
618
  def extending(*args, &block); end
657
-
658
- sig { params(args: T.untyped).returns(Wand) }
659
- def find(*args); end
660
-
661
- sig { params(args: T.untyped).returns(T.nilable(Wand)) }
662
- def find_by(*args); end
663
-
664
- sig { params(args: T.untyped).returns(Wand) }
665
- def find_by!(*args); end
666
-
667
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
668
- def find_or_initialize_by(attributes, &block); end
669
-
670
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
671
- def find_or_create_by(attributes, &block); end
672
-
673
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
674
- def find_or_create_by!(attributes, &block); end
675
-
676
- sig { returns(T.nilable(Wand)) }
677
- def first; end
678
-
679
- sig { returns(Wand) }
680
- def first!; end
681
-
682
- sig { returns(T.nilable(Wand)) }
683
- def second; end
684
-
685
- sig { returns(Wand) }
686
- def second!; end
687
-
688
- sig { returns(T.nilable(Wand)) }
689
- def third; end
690
-
691
- sig { returns(Wand) }
692
- def third!; end
693
-
694
- sig { returns(T.nilable(Wand)) }
695
- def third_to_last; end
696
-
697
- sig { returns(Wand) }
698
- def third_to_last!; end
699
-
700
- sig { returns(T.nilable(Wand)) }
701
- def second_to_last; end
702
-
703
- sig { returns(Wand) }
704
- def second_to_last!; end
705
-
706
- sig { returns(T.nilable(Wand)) }
707
- def last; end
708
-
709
- sig { returns(Wand) }
710
- def last!; end
711
-
712
- sig { params(conditions: T.untyped).returns(T::Boolean) }
713
- def exists?(conditions = nil); end
714
-
715
- sig { params(args: T.untyped).returns(T::Boolean) }
716
- def any?(*args); end
717
-
718
- sig { params(args: T.untyped).returns(T::Boolean) }
719
- def many?(*args); end
720
-
721
- sig { params(args: T.untyped).returns(T::Boolean) }
722
- def none?(*args); end
723
-
724
- sig { params(args: T.untyped).returns(T::Boolean) }
725
- def one?(*args); end
726
-
727
- sig { params(args: T.untyped).returns(T::Boolean) }
728
- def empty?(*args); end
729
-
730
- sig { override.params(block: T.proc.params(e: Wand).void).returns(T::Array[Wand]) }
731
- def each(&block); end
732
-
733
- sig { params(level: T.nilable(Integer)).returns(T::Array[Wand]) }
734
- def flatten(level); end
735
-
736
- sig { returns(T::Array[Wand]) }
737
- def to_a; end
738
-
739
- sig do
740
- type_parameters(:U).params(
741
- blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
742
- )
743
- .returns(T::Array[T.type_parameter(:U)])
744
- end
745
- def map(&blk); end
746
619
  end
747
620
 
748
621
  class Wand::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
749
622
  include Wand::CustomFinderMethods
750
- include Enumerable
751
623
  extend T::Sig
752
624
  extend T::Generic
753
625
  Elem = type_member(fixed: Wand)
@@ -875,95 +747,6 @@ class Wand::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associatio
875
747
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_AssociationRelation) }
876
748
  def extending(*args, &block); end
877
749
 
878
- sig { params(args: T.untyped).returns(Wand) }
879
- def find(*args); end
880
-
881
- sig { params(args: T.untyped).returns(T.nilable(Wand)) }
882
- def find_by(*args); end
883
-
884
- sig { params(args: T.untyped).returns(Wand) }
885
- def find_by!(*args); end
886
-
887
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
888
- def find_or_initialize_by(attributes, &block); end
889
-
890
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
891
- def find_or_create_by(attributes, &block); end
892
-
893
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wand).void)).returns(Wand) }
894
- def find_or_create_by!(attributes, &block); end
895
-
896
- sig { returns(T.nilable(Wand)) }
897
- def first; end
898
-
899
- sig { returns(Wand) }
900
- def first!; end
901
-
902
- sig { returns(T.nilable(Wand)) }
903
- def second; end
904
-
905
- sig { returns(Wand) }
906
- def second!; end
907
-
908
- sig { returns(T.nilable(Wand)) }
909
- def third; end
910
-
911
- sig { returns(Wand) }
912
- def third!; end
913
-
914
- sig { returns(T.nilable(Wand)) }
915
- def third_to_last; end
916
-
917
- sig { returns(Wand) }
918
- def third_to_last!; end
919
-
920
- sig { returns(T.nilable(Wand)) }
921
- def second_to_last; end
922
-
923
- sig { returns(Wand) }
924
- def second_to_last!; end
925
-
926
- sig { returns(T.nilable(Wand)) }
927
- def last; end
928
-
929
- sig { returns(Wand) }
930
- def last!; end
931
-
932
- sig { params(conditions: T.untyped).returns(T::Boolean) }
933
- def exists?(conditions = nil); end
934
-
935
- sig { params(args: T.untyped).returns(T::Boolean) }
936
- def any?(*args); end
937
-
938
- sig { params(args: T.untyped).returns(T::Boolean) }
939
- def many?(*args); end
940
-
941
- sig { params(args: T.untyped).returns(T::Boolean) }
942
- def none?(*args); end
943
-
944
- sig { params(args: T.untyped).returns(T::Boolean) }
945
- def one?(*args); end
946
-
947
- sig { params(args: T.untyped).returns(T::Boolean) }
948
- def empty?(*args); end
949
-
950
- sig { override.params(block: T.proc.params(e: Wand).void).returns(T::Array[Wand]) }
951
- def each(&block); end
952
-
953
- sig { params(level: T.nilable(Integer)).returns(T::Array[Wand]) }
954
- def flatten(level); end
955
-
956
- sig { returns(T::Array[Wand]) }
957
- def to_a; end
958
-
959
- sig do
960
- type_parameters(:U).params(
961
- blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
962
- )
963
- .returns(T::Array[T.type_parameter(:U)])
964
- end
965
- def map(&blk); end
966
-
967
750
  sig { params(records: T.any(Wand, T::Array[Wand])).returns(T.self_type) }
968
751
  def <<(*records); end
969
752
 
@@ -167,10 +167,10 @@ module Wizard::GeneratedAttributeMethods
167
167
  sig { returns(T::Boolean) }
168
168
  def id?; end
169
169
 
170
- sig { returns(T.nilable(String)) }
170
+ sig { returns(String) }
171
171
  def name; end
172
172
 
173
- sig { params(value: T.nilable(T.any(String, Symbol))).void }
173
+ sig { params(value: T.any(String, Symbol)).void }
174
174
  def name=(value); end
175
175
 
176
176
  sig { returns(T::Boolean) }
@@ -236,57 +236,58 @@ end
236
236
 
237
237
  class Wizard::Broom < T::Enum
238
238
  enums do
239
- Nimbus = new('nimbus')
240
- Firebolt = new('firebolt')
239
+ Nimbus = new(%q{nimbus})
240
+ Firebolt = new(%q{firebolt})
241
241
  end
242
242
 
243
243
  end
244
244
 
245
245
  class Wizard::EyeColor < T::Enum
246
246
  enums do
247
- Brown = new('brown')
248
- Green = new('green')
249
- Blue = new('blue')
247
+ Brown = new(%q{brown})
248
+ Green = new(%q{green})
249
+ Blue = new(%q{blue})
250
250
  end
251
251
 
252
252
  end
253
253
 
254
254
  class Wizard::HairColor < T::Enum
255
255
  enums do
256
- Brown = new('brown')
257
- Black = new('black')
258
- Blonde = new('blonde')
256
+ Brown = new(%q{brown})
257
+ Black = new(%q{black})
258
+ Blonde = new(%q{blonde})
259
259
  end
260
260
 
261
261
  end
262
262
 
263
263
  class Wizard::House < T::Enum
264
264
  enums do
265
- Gryffindor = new('Gryffindor')
266
- Hufflepuff = new('Hufflepuff')
267
- Ravenclaw = new('Ravenclaw')
268
- Slytherin = new('Slytherin')
265
+ Gryffindor = new(%q{Gryffindor})
266
+ Hufflepuff = new(%q{Hufflepuff})
267
+ Ravenclaw = new(%q{Ravenclaw})
268
+ Slytherin = new(%q{Slytherin})
269
269
  end
270
270
 
271
271
  end
272
272
 
273
273
  class Wizard::ProfessorEnum < T::Enum
274
274
  enums do
275
- SeverusSnape = new('Severus Snape')
276
- MinervaMcGonagall = new('Minerva McGonagall')
277
- PomonaSprout = new('Pomona Sprout')
278
- FiliusFlitwick = new('Filius Flitwick')
279
- Hagrid = new('Hagrid')
275
+ SeverusSnape = new(%q{Severus Snape})
276
+ MinervaMcGonagall = new(%q{Minerva McGonagall})
277
+ PomonaSprout = new(%q{Pomona Sprout})
278
+ FiliusFlitwick = new(%q{Filius Flitwick})
279
+ Hagrid = new(%q{Hagrid})
280
+ AlastorMadEyeMoody = new(%q{Alastor 'Mad-Eye' Moody})
280
281
  end
281
282
 
282
283
  end
283
284
 
284
285
  class Wizard::QuidditchPosition < T::Enum
285
286
  enums do
286
- Keeper = new('keeper')
287
- Seeker = new('seeker')
288
- Beater = new('beater')
289
- Chaser = new('chaser')
287
+ Keeper = new(%q{keeper})
288
+ Seeker = new(%q{seeker})
289
+ Beater = new(%q{beater})
290
+ Chaser = new(%q{chaser})
290
291
  end
291
292
 
292
293
  end
@@ -580,30 +581,11 @@ class Wizard < ApplicationRecord
580
581
 
581
582
  sig { params(value: T.nilable(Wizard::QuidditchPosition)).void }
582
583
  def typed_quidditch_position=(value); end
583
-
584
- sig { params(conditions: T.untyped).returns(T::Boolean) }
585
- def self.exists?(conditions = nil); end
586
-
587
- sig { params(args: T.untyped).returns(T::Boolean) }
588
- def self.any?(*args); end
589
-
590
- sig { params(args: T.untyped).returns(T::Boolean) }
591
- def self.many?(*args); end
592
-
593
- sig { params(args: T.untyped).returns(T::Boolean) }
594
- def self.none?(*args); end
595
-
596
- sig { params(args: T.untyped).returns(T::Boolean) }
597
- def self.one?(*args); end
598
-
599
- sig { params(args: T.untyped).returns(T::Boolean) }
600
- def self.empty?(*args); end
601
584
  end
602
585
 
603
586
  class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
604
587
  include Wizard::ActiveRelation_WhereNot
605
588
  include Wizard::CustomFinderMethods
606
- include Enumerable
607
589
  extend T::Sig
608
590
  extend T::Generic
609
591
  Elem = type_member(fixed: Wizard)
@@ -817,30 +799,11 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
817
799
 
818
800
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
819
801
  def extending(*args, &block); end
820
-
821
- sig { params(conditions: T.untyped).returns(T::Boolean) }
822
- def exists?(conditions = nil); end
823
-
824
- sig { params(args: T.untyped).returns(T::Boolean) }
825
- def any?(*args); end
826
-
827
- sig { params(args: T.untyped).returns(T::Boolean) }
828
- def many?(*args); end
829
-
830
- sig { params(args: T.untyped).returns(T::Boolean) }
831
- def none?(*args); end
832
-
833
- sig { params(args: T.untyped).returns(T::Boolean) }
834
- def one?(*args); end
835
-
836
- sig { params(args: T.untyped).returns(T::Boolean) }
837
- def empty?(*args); end
838
802
  end
839
803
 
840
804
  class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
841
805
  include Wizard::ActiveRelation_WhereNot
842
806
  include Wizard::CustomFinderMethods
843
- include Enumerable
844
807
  extend T::Sig
845
808
  extend T::Generic
846
809
  Elem = type_member(fixed: Wizard)
@@ -1054,100 +1017,10 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
1054
1017
 
1055
1018
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_AssociationRelation) }
1056
1019
  def extending(*args, &block); end
1057
-
1058
- sig { params(args: T.untyped).returns(Wizard) }
1059
- def find(*args); end
1060
-
1061
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
1062
- def find_by(*args); end
1063
-
1064
- sig { params(args: T.untyped).returns(Wizard) }
1065
- def find_by!(*args); end
1066
-
1067
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1068
- def find_or_initialize_by(attributes, &block); end
1069
-
1070
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1071
- def find_or_create_by(attributes, &block); end
1072
-
1073
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1074
- def find_or_create_by!(attributes, &block); end
1075
-
1076
- sig { returns(T.nilable(Wizard)) }
1077
- def first; end
1078
-
1079
- sig { returns(Wizard) }
1080
- def first!; end
1081
-
1082
- sig { returns(T.nilable(Wizard)) }
1083
- def second; end
1084
-
1085
- sig { returns(Wizard) }
1086
- def second!; end
1087
-
1088
- sig { returns(T.nilable(Wizard)) }
1089
- def third; end
1090
-
1091
- sig { returns(Wizard) }
1092
- def third!; end
1093
-
1094
- sig { returns(T.nilable(Wizard)) }
1095
- def third_to_last; end
1096
-
1097
- sig { returns(Wizard) }
1098
- def third_to_last!; end
1099
-
1100
- sig { returns(T.nilable(Wizard)) }
1101
- def second_to_last; end
1102
-
1103
- sig { returns(Wizard) }
1104
- def second_to_last!; end
1105
-
1106
- sig { returns(T.nilable(Wizard)) }
1107
- def last; end
1108
-
1109
- sig { returns(Wizard) }
1110
- def last!; end
1111
-
1112
- sig { params(conditions: T.untyped).returns(T::Boolean) }
1113
- def exists?(conditions = nil); end
1114
-
1115
- sig { params(args: T.untyped).returns(T::Boolean) }
1116
- def any?(*args); end
1117
-
1118
- sig { params(args: T.untyped).returns(T::Boolean) }
1119
- def many?(*args); end
1120
-
1121
- sig { params(args: T.untyped).returns(T::Boolean) }
1122
- def none?(*args); end
1123
-
1124
- sig { params(args: T.untyped).returns(T::Boolean) }
1125
- def one?(*args); end
1126
-
1127
- sig { params(args: T.untyped).returns(T::Boolean) }
1128
- def empty?(*args); end
1129
-
1130
- sig { override.params(block: T.proc.params(e: Wizard).void).returns(T::Array[Wizard]) }
1131
- def each(&block); end
1132
-
1133
- sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard]) }
1134
- def flatten(level); end
1135
-
1136
- sig { returns(T::Array[Wizard]) }
1137
- def to_a; end
1138
-
1139
- sig do
1140
- type_parameters(:U).params(
1141
- blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
1142
- )
1143
- .returns(T::Array[T.type_parameter(:U)])
1144
- end
1145
- def map(&blk); end
1146
1020
  end
1147
1021
 
1148
1022
  class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
1149
1023
  include Wizard::CustomFinderMethods
1150
- include Enumerable
1151
1024
  extend T::Sig
1152
1025
  extend T::Generic
1153
1026
  Elem = type_member(fixed: Wizard)
@@ -1362,95 +1235,6 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
1362
1235
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_AssociationRelation) }
1363
1236
  def extending(*args, &block); end
1364
1237
 
1365
- sig { params(args: T.untyped).returns(Wizard) }
1366
- def find(*args); end
1367
-
1368
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
1369
- def find_by(*args); end
1370
-
1371
- sig { params(args: T.untyped).returns(Wizard) }
1372
- def find_by!(*args); end
1373
-
1374
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1375
- def find_or_initialize_by(attributes, &block); end
1376
-
1377
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1378
- def find_or_create_by(attributes, &block); end
1379
-
1380
- sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1381
- def find_or_create_by!(attributes, &block); end
1382
-
1383
- sig { returns(T.nilable(Wizard)) }
1384
- def first; end
1385
-
1386
- sig { returns(Wizard) }
1387
- def first!; end
1388
-
1389
- sig { returns(T.nilable(Wizard)) }
1390
- def second; end
1391
-
1392
- sig { returns(Wizard) }
1393
- def second!; end
1394
-
1395
- sig { returns(T.nilable(Wizard)) }
1396
- def third; end
1397
-
1398
- sig { returns(Wizard) }
1399
- def third!; end
1400
-
1401
- sig { returns(T.nilable(Wizard)) }
1402
- def third_to_last; end
1403
-
1404
- sig { returns(Wizard) }
1405
- def third_to_last!; end
1406
-
1407
- sig { returns(T.nilable(Wizard)) }
1408
- def second_to_last; end
1409
-
1410
- sig { returns(Wizard) }
1411
- def second_to_last!; end
1412
-
1413
- sig { returns(T.nilable(Wizard)) }
1414
- def last; end
1415
-
1416
- sig { returns(Wizard) }
1417
- def last!; end
1418
-
1419
- sig { params(conditions: T.untyped).returns(T::Boolean) }
1420
- def exists?(conditions = nil); end
1421
-
1422
- sig { params(args: T.untyped).returns(T::Boolean) }
1423
- def any?(*args); end
1424
-
1425
- sig { params(args: T.untyped).returns(T::Boolean) }
1426
- def many?(*args); end
1427
-
1428
- sig { params(args: T.untyped).returns(T::Boolean) }
1429
- def none?(*args); end
1430
-
1431
- sig { params(args: T.untyped).returns(T::Boolean) }
1432
- def one?(*args); end
1433
-
1434
- sig { params(args: T.untyped).returns(T::Boolean) }
1435
- def empty?(*args); end
1436
-
1437
- sig { override.params(block: T.proc.params(e: Wizard).void).returns(T::Array[Wizard]) }
1438
- def each(&block); end
1439
-
1440
- sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard]) }
1441
- def flatten(level); end
1442
-
1443
- sig { returns(T::Array[Wizard]) }
1444
- def to_a; end
1445
-
1446
- sig do
1447
- type_parameters(:U).params(
1448
- blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
1449
- )
1450
- .returns(T::Array[T.type_parameter(:U)])
1451
- end
1452
- def map(&blk); end
1453
-
1454
1238
  sig { params(records: T.any(Wizard, T::Array[Wizard])).returns(T.self_type) }
1455
1239
  def <<(*records); end
1456
1240
 
@@ -1470,12 +1254,18 @@ module Wizard::GeneratedAssociationMethods
1470
1254
  sig { returns(::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy) }
1471
1255
  def hats_attachments; end
1472
1256
 
1257
+ sig { returns(T::Array[Integer]) }
1258
+ def hats_attachment_ids; end
1259
+
1473
1260
  sig { params(value: T::Enumerable[::ActiveStorage::Attachment]).void }
1474
1261
  def hats_attachments=(value); end
1475
1262
 
1476
1263
  sig { returns(::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy) }
1477
1264
  def hats_blobs; end
1478
1265
 
1266
+ sig { returns(T::Array[Integer]) }
1267
+ def hats_blob_ids; end
1268
+
1479
1269
  sig { params(value: T::Enumerable[::ActiveStorage::Blob]).void }
1480
1270
  def hats_blobs=(value); end
1481
1271
 
@@ -1500,9 +1290,21 @@ module Wizard::GeneratedAssociationMethods
1500
1290
  sig { returns(::SpellBook::ActiveRecord_Associations_CollectionProxy) }
1501
1291
  def spell_books; end
1502
1292
 
1293
+ sig { returns(T::Array[Integer]) }
1294
+ def spell_book_ids; end
1295
+
1503
1296
  sig { params(value: T::Enumerable[::SpellBook]).void }
1504
1297
  def spell_books=(value); end
1505
1298
 
1299
+ sig { returns(::Subject::ActiveRecord_Associations_CollectionProxy) }
1300
+ def subjects; end
1301
+
1302
+ sig { returns(T::Array[Integer]) }
1303
+ def subject_ids; end
1304
+
1305
+ sig { params(value: T::Enumerable[::Subject]).void }
1306
+ def subjects=(value); end
1307
+
1506
1308
  sig { returns(T.nilable(::Wand)) }
1507
1309
  def wand; end
1508
1310