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
@@ -0,0 +1,720 @@
1
+ # This is an autogenerated file for dynamic methods in Wizard::HABTM_Subjects
2
+ # Please rerun bundle exec rake rails_rbi:models[Wizard::HABTM_Subjects] to regenerate.
3
+
4
+ # typed: strong
5
+ module Wizard::HABTM_Subjects::ActiveRelation_WhereNot
6
+ sig { params(opts: T.untyped, rest: T.untyped).returns(T.self_type) }
7
+ def not(opts, *rest); end
8
+ end
9
+
10
+ module Wizard::HABTM_Subjects::GeneratedAttributeMethods
11
+ extend T::Sig
12
+
13
+ sig { returns(Integer) }
14
+ def subject_id; end
15
+
16
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
17
+ def subject_id=(value); end
18
+
19
+ sig { returns(T::Boolean) }
20
+ def subject_id?; end
21
+
22
+ sig { returns(Integer) }
23
+ def wizard_id; end
24
+
25
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
26
+ def wizard_id=(value); end
27
+
28
+ sig { returns(T::Boolean) }
29
+ def wizard_id?; end
30
+ end
31
+
32
+ module Wizard::HABTM_Subjects::GeneratedAssociationMethods
33
+ extend T::Sig
34
+
35
+ sig { returns(T.nilable(::Wizard)) }
36
+ def left_side; end
37
+
38
+ sig { params(value: T.nilable(::Wizard)).void }
39
+ def left_side=(value); end
40
+
41
+ sig { returns(::Subject) }
42
+ def subject; end
43
+
44
+ sig { params(value: ::Subject).void }
45
+ def subject=(value); end
46
+ end
47
+
48
+ module Wizard::HABTM_Subjects::CustomFinderMethods
49
+ sig { params(limit: Integer).returns(T::Array[Wizard::HABTM_Subjects]) }
50
+ def first_n(limit); end
51
+
52
+ sig { params(limit: Integer).returns(T::Array[Wizard::HABTM_Subjects]) }
53
+ def last_n(limit); end
54
+
55
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Wizard::HABTM_Subjects]) }
56
+ def find_n(*args); end
57
+
58
+ sig { params(id: Integer).returns(T.nilable(Wizard::HABTM_Subjects)) }
59
+ def find_by_id(id); end
60
+
61
+ sig { params(id: Integer).returns(Wizard::HABTM_Subjects) }
62
+ def find_by_id!(id); end
63
+ end
64
+
65
+ class Wizard::HABTM_Subjects < ActiveRecord::Base
66
+ include Wizard::HABTM_Subjects::GeneratedAttributeMethods
67
+ include Wizard::HABTM_Subjects::GeneratedAssociationMethods
68
+ extend Wizard::HABTM_Subjects::CustomFinderMethods
69
+ extend T::Sig
70
+ extend T::Generic
71
+ RelationType = T.type_alias { T.any(Wizard::HABTM_Subjects::ActiveRecord_Relation, Wizard::HABTM_Subjects::ActiveRecord_Associations_CollectionProxy, Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
72
+
73
+ sig { returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
74
+ def self.all; end
75
+
76
+ sig { params(block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
77
+ def self.unscoped(&block); end
78
+
79
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
80
+ def self.select(*args); end
81
+
82
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
83
+ def self.reselect(*args); end
84
+
85
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
86
+ def self.order(*args); end
87
+
88
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
89
+ def self.reorder(*args); end
90
+
91
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
92
+ def self.group(*args); end
93
+
94
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
95
+ def self.limit(*args); end
96
+
97
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
98
+ def self.offset(*args); end
99
+
100
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
101
+ def self.joins(*args); end
102
+
103
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
104
+ def self.left_joins(*args); end
105
+
106
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
107
+ def self.left_outer_joins(*args); end
108
+
109
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
110
+ def self.where(*args); end
111
+
112
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
113
+ def self.rewhere(*args); end
114
+
115
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
116
+ def self.preload(*args); end
117
+
118
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
119
+ def self.extract_associated(*args); end
120
+
121
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
122
+ def self.eager_load(*args); end
123
+
124
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
125
+ def self.includes(*args); end
126
+
127
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
128
+ def self.from(*args); end
129
+
130
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
131
+ def self.lock(*args); end
132
+
133
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
134
+ def self.readonly(*args); end
135
+
136
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
137
+ def self.or(*args); end
138
+
139
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
140
+ def self.having(*args); end
141
+
142
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
143
+ def self.create_with(*args); end
144
+
145
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
146
+ def self.distinct(*args); end
147
+
148
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
149
+ def self.references(*args); end
150
+
151
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
152
+ def self.none(*args); end
153
+
154
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
155
+ def self.unscope(*args); end
156
+
157
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
158
+ def self.optimizer_hints(*args); end
159
+
160
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
161
+ def self.merge(*args); end
162
+
163
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
164
+ def self.except(*args); end
165
+
166
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
167
+ def self.only(*args); end
168
+
169
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
170
+ def self.extending(*args, &block); end
171
+
172
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
173
+ def self.exists?(conditions = nil); end
174
+
175
+ sig { params(args: T.untyped).returns(T::Boolean) }
176
+ def self.any?(*args); end
177
+
178
+ sig { params(args: T.untyped).returns(T::Boolean) }
179
+ def self.many?(*args); end
180
+
181
+ sig { params(args: T.untyped).returns(T::Boolean) }
182
+ def self.none?(*args); end
183
+
184
+ sig { params(args: T.untyped).returns(T::Boolean) }
185
+ def self.one?(*args); end
186
+
187
+ sig { params(args: T.untyped).returns(T::Boolean) }
188
+ def self.empty?(*args); end
189
+ end
190
+
191
+ class Wizard::HABTM_Subjects::ActiveRecord_Relation < ActiveRecord::Relation
192
+ include Wizard::HABTM_Subjects::ActiveRelation_WhereNot
193
+ include Wizard::HABTM_Subjects::CustomFinderMethods
194
+ include Enumerable
195
+ extend T::Sig
196
+ extend T::Generic
197
+ Elem = type_member(fixed: Wizard::HABTM_Subjects)
198
+
199
+ sig { returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
200
+ def all; end
201
+
202
+ sig { params(block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
203
+ def unscoped(&block); end
204
+
205
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
206
+ def select(*args); end
207
+
208
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
209
+ def reselect(*args); end
210
+
211
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
212
+ def order(*args); end
213
+
214
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
215
+ def reorder(*args); end
216
+
217
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
218
+ def group(*args); end
219
+
220
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
221
+ def limit(*args); end
222
+
223
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
224
+ def offset(*args); end
225
+
226
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
227
+ def joins(*args); end
228
+
229
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
230
+ def left_joins(*args); end
231
+
232
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
233
+ def left_outer_joins(*args); end
234
+
235
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
236
+ def where(*args); end
237
+
238
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
239
+ def rewhere(*args); end
240
+
241
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
242
+ def preload(*args); end
243
+
244
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
245
+ def extract_associated(*args); end
246
+
247
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
248
+ def eager_load(*args); end
249
+
250
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
251
+ def includes(*args); end
252
+
253
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
254
+ def from(*args); end
255
+
256
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
257
+ def lock(*args); end
258
+
259
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
260
+ def readonly(*args); end
261
+
262
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
263
+ def or(*args); end
264
+
265
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
266
+ def having(*args); end
267
+
268
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
269
+ def create_with(*args); end
270
+
271
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
272
+ def distinct(*args); end
273
+
274
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
275
+ def references(*args); end
276
+
277
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
278
+ def none(*args); end
279
+
280
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
281
+ def unscope(*args); end
282
+
283
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
284
+ def optimizer_hints(*args); end
285
+
286
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
287
+ def merge(*args); end
288
+
289
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
290
+ def except(*args); end
291
+
292
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
293
+ def only(*args); end
294
+
295
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_Relation) }
296
+ def extending(*args, &block); end
297
+
298
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
299
+ def exists?(conditions = nil); end
300
+
301
+ sig { params(args: T.untyped).returns(T::Boolean) }
302
+ def any?(*args); end
303
+
304
+ sig { params(args: T.untyped).returns(T::Boolean) }
305
+ def many?(*args); end
306
+
307
+ sig { params(args: T.untyped).returns(T::Boolean) }
308
+ def none?(*args); end
309
+
310
+ sig { params(args: T.untyped).returns(T::Boolean) }
311
+ def one?(*args); end
312
+
313
+ sig { params(args: T.untyped).returns(T::Boolean) }
314
+ def empty?(*args); end
315
+ end
316
+
317
+ class Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
318
+ include Wizard::HABTM_Subjects::ActiveRelation_WhereNot
319
+ include Wizard::HABTM_Subjects::CustomFinderMethods
320
+ include Enumerable
321
+ extend T::Sig
322
+ extend T::Generic
323
+ Elem = type_member(fixed: Wizard::HABTM_Subjects)
324
+
325
+ sig { returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
326
+ def all; end
327
+
328
+ sig { params(block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
329
+ def unscoped(&block); end
330
+
331
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
332
+ def select(*args); end
333
+
334
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
335
+ def reselect(*args); end
336
+
337
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
338
+ def order(*args); end
339
+
340
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
341
+ def reorder(*args); end
342
+
343
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
344
+ def group(*args); end
345
+
346
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
347
+ def limit(*args); end
348
+
349
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
350
+ def offset(*args); end
351
+
352
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
353
+ def joins(*args); end
354
+
355
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
356
+ def left_joins(*args); end
357
+
358
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
359
+ def left_outer_joins(*args); end
360
+
361
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
362
+ def where(*args); end
363
+
364
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
365
+ def rewhere(*args); end
366
+
367
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
368
+ def preload(*args); end
369
+
370
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
371
+ def extract_associated(*args); end
372
+
373
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
374
+ def eager_load(*args); end
375
+
376
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
377
+ def includes(*args); end
378
+
379
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
380
+ def from(*args); end
381
+
382
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
383
+ def lock(*args); end
384
+
385
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
386
+ def readonly(*args); end
387
+
388
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
389
+ def or(*args); end
390
+
391
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
392
+ def having(*args); end
393
+
394
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
395
+ def create_with(*args); end
396
+
397
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
398
+ def distinct(*args); end
399
+
400
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
401
+ def references(*args); end
402
+
403
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
404
+ def none(*args); end
405
+
406
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
407
+ def unscope(*args); end
408
+
409
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
410
+ def optimizer_hints(*args); end
411
+
412
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
413
+ def merge(*args); end
414
+
415
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
416
+ def except(*args); end
417
+
418
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
419
+ def only(*args); end
420
+
421
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
422
+ def extending(*args, &block); end
423
+
424
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects) }
425
+ def find(*args); end
426
+
427
+ sig { params(args: T.untyped).returns(T.nilable(Wizard::HABTM_Subjects)) }
428
+ def find_by(*args); end
429
+
430
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects) }
431
+ def find_by!(*args); end
432
+
433
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
434
+ def find_or_initialize_by(attributes, &block); end
435
+
436
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
437
+ def find_or_create_by(attributes, &block); end
438
+
439
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
440
+ def find_or_create_by!(attributes, &block); end
441
+
442
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
443
+ def first; end
444
+
445
+ sig { returns(Wizard::HABTM_Subjects) }
446
+ def first!; end
447
+
448
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
449
+ def second; end
450
+
451
+ sig { returns(Wizard::HABTM_Subjects) }
452
+ def second!; end
453
+
454
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
455
+ def third; end
456
+
457
+ sig { returns(Wizard::HABTM_Subjects) }
458
+ def third!; end
459
+
460
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
461
+ def third_to_last; end
462
+
463
+ sig { returns(Wizard::HABTM_Subjects) }
464
+ def third_to_last!; end
465
+
466
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
467
+ def second_to_last; end
468
+
469
+ sig { returns(Wizard::HABTM_Subjects) }
470
+ def second_to_last!; end
471
+
472
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
473
+ def last; end
474
+
475
+ sig { returns(Wizard::HABTM_Subjects) }
476
+ def last!; end
477
+
478
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
479
+ def exists?(conditions = nil); end
480
+
481
+ sig { params(args: T.untyped).returns(T::Boolean) }
482
+ def any?(*args); end
483
+
484
+ sig { params(args: T.untyped).returns(T::Boolean) }
485
+ def many?(*args); end
486
+
487
+ sig { params(args: T.untyped).returns(T::Boolean) }
488
+ def none?(*args); end
489
+
490
+ sig { params(args: T.untyped).returns(T::Boolean) }
491
+ def one?(*args); end
492
+
493
+ sig { params(args: T.untyped).returns(T::Boolean) }
494
+ def empty?(*args); end
495
+
496
+ sig { override.params(block: T.proc.params(e: Wizard::HABTM_Subjects).void).returns(T::Array[Wizard::HABTM_Subjects]) }
497
+ def each(&block); end
498
+
499
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard::HABTM_Subjects]) }
500
+ def flatten(level); end
501
+
502
+ sig { returns(T::Array[Wizard::HABTM_Subjects]) }
503
+ def to_a; end
504
+
505
+ sig do
506
+ type_parameters(:U).params(
507
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
508
+ )
509
+ .returns(T::Array[T.type_parameter(:U)])
510
+ end
511
+ def map(&blk); end
512
+ end
513
+
514
+ class Wizard::HABTM_Subjects::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
515
+ include Wizard::HABTM_Subjects::CustomFinderMethods
516
+ include Enumerable
517
+ extend T::Sig
518
+ extend T::Generic
519
+ Elem = type_member(fixed: Wizard::HABTM_Subjects)
520
+
521
+ sig { returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
522
+ def all; end
523
+
524
+ sig { params(block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
525
+ def unscoped(&block); end
526
+
527
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
528
+ def select(*args); end
529
+
530
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
531
+ def reselect(*args); end
532
+
533
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
534
+ def order(*args); end
535
+
536
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
537
+ def reorder(*args); end
538
+
539
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
540
+ def group(*args); end
541
+
542
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
543
+ def limit(*args); end
544
+
545
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
546
+ def offset(*args); end
547
+
548
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
549
+ def joins(*args); end
550
+
551
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
552
+ def left_joins(*args); end
553
+
554
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
555
+ def left_outer_joins(*args); end
556
+
557
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
558
+ def where(*args); end
559
+
560
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
561
+ def rewhere(*args); end
562
+
563
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
564
+ def preload(*args); end
565
+
566
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
567
+ def extract_associated(*args); end
568
+
569
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
570
+ def eager_load(*args); end
571
+
572
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
573
+ def includes(*args); end
574
+
575
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
576
+ def from(*args); end
577
+
578
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
579
+ def lock(*args); end
580
+
581
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
582
+ def readonly(*args); end
583
+
584
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
585
+ def or(*args); end
586
+
587
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
588
+ def having(*args); end
589
+
590
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
591
+ def create_with(*args); end
592
+
593
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
594
+ def distinct(*args); end
595
+
596
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
597
+ def references(*args); end
598
+
599
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
600
+ def none(*args); end
601
+
602
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
603
+ def unscope(*args); end
604
+
605
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
606
+ def optimizer_hints(*args); end
607
+
608
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
609
+ def merge(*args); end
610
+
611
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
612
+ def except(*args); end
613
+
614
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
615
+ def only(*args); end
616
+
617
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::HABTM_Subjects::ActiveRecord_AssociationRelation) }
618
+ def extending(*args, &block); end
619
+
620
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects) }
621
+ def find(*args); end
622
+
623
+ sig { params(args: T.untyped).returns(T.nilable(Wizard::HABTM_Subjects)) }
624
+ def find_by(*args); end
625
+
626
+ sig { params(args: T.untyped).returns(Wizard::HABTM_Subjects) }
627
+ def find_by!(*args); end
628
+
629
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
630
+ def find_or_initialize_by(attributes, &block); end
631
+
632
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
633
+ def find_or_create_by(attributes, &block); end
634
+
635
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard::HABTM_Subjects).void)).returns(Wizard::HABTM_Subjects) }
636
+ def find_or_create_by!(attributes, &block); end
637
+
638
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
639
+ def first; end
640
+
641
+ sig { returns(Wizard::HABTM_Subjects) }
642
+ def first!; end
643
+
644
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
645
+ def second; end
646
+
647
+ sig { returns(Wizard::HABTM_Subjects) }
648
+ def second!; end
649
+
650
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
651
+ def third; end
652
+
653
+ sig { returns(Wizard::HABTM_Subjects) }
654
+ def third!; end
655
+
656
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
657
+ def third_to_last; end
658
+
659
+ sig { returns(Wizard::HABTM_Subjects) }
660
+ def third_to_last!; end
661
+
662
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
663
+ def second_to_last; end
664
+
665
+ sig { returns(Wizard::HABTM_Subjects) }
666
+ def second_to_last!; end
667
+
668
+ sig { returns(T.nilable(Wizard::HABTM_Subjects)) }
669
+ def last; end
670
+
671
+ sig { returns(Wizard::HABTM_Subjects) }
672
+ def last!; end
673
+
674
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
675
+ def exists?(conditions = nil); end
676
+
677
+ sig { params(args: T.untyped).returns(T::Boolean) }
678
+ def any?(*args); end
679
+
680
+ sig { params(args: T.untyped).returns(T::Boolean) }
681
+ def many?(*args); end
682
+
683
+ sig { params(args: T.untyped).returns(T::Boolean) }
684
+ def none?(*args); end
685
+
686
+ sig { params(args: T.untyped).returns(T::Boolean) }
687
+ def one?(*args); end
688
+
689
+ sig { params(args: T.untyped).returns(T::Boolean) }
690
+ def empty?(*args); end
691
+
692
+ sig { override.params(block: T.proc.params(e: Wizard::HABTM_Subjects).void).returns(T::Array[Wizard::HABTM_Subjects]) }
693
+ def each(&block); end
694
+
695
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard::HABTM_Subjects]) }
696
+ def flatten(level); end
697
+
698
+ sig { returns(T::Array[Wizard::HABTM_Subjects]) }
699
+ def to_a; end
700
+
701
+ sig do
702
+ type_parameters(:U).params(
703
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
704
+ )
705
+ .returns(T::Array[T.type_parameter(:U)])
706
+ end
707
+ def map(&blk); end
708
+
709
+ sig { params(records: T.any(Wizard::HABTM_Subjects, T::Array[Wizard::HABTM_Subjects])).returns(T.self_type) }
710
+ def <<(*records); end
711
+
712
+ sig { params(records: T.any(Wizard::HABTM_Subjects, T::Array[Wizard::HABTM_Subjects])).returns(T.self_type) }
713
+ def append(*records); end
714
+
715
+ sig { params(records: T.any(Wizard::HABTM_Subjects, T::Array[Wizard::HABTM_Subjects])).returns(T.self_type) }
716
+ def push(*records); end
717
+
718
+ sig { params(records: T.any(Wizard::HABTM_Subjects, T::Array[Wizard::HABTM_Subjects])).returns(T.self_type) }
719
+ def concat(*records); end
720
+ end