sorbet-rails 0.7.33 → 0.7.34

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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci-master.yml +1 -1
  3. data/.github/workflows/ci.yml +1 -1
  4. data/CONTRIBUTING.md +1 -0
  5. data/Gemfile +4 -0
  6. data/README.md +1 -1
  7. data/Rakefile +27 -1
  8. data/lib/sorbet-rails/active_record_rbi_formatter.rb +1 -1
  9. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +14 -0
  10. data/lib/sorbet-rails/rails_mixins/active_record_overrides.rb +1 -1
  11. data/lib/sorbet-rails/tasks/rails_rbi.rake +15 -0
  12. data/sorbet-rails.gemspec +1 -1
  13. data/spec/bin/run_all_specs.sh +1 -0
  14. data/spec/generators/rails-template.rb +2 -7
  15. data/spec/rails_helper.rb +2 -0
  16. data/spec/rake_rails_rbi_models_spec.rb +1 -1
  17. data/spec/support/v5.2/sorbet_test_cases.rb +8 -0
  18. data/spec/support/v6.0/sorbet_test_cases.rb +8 -0
  19. data/spec/support/v6.1/sorbet_test_cases.rb +8 -0
  20. data/spec/support/v7.0/.gitattributes +7 -0
  21. data/spec/support/v7.0/.gitignore +35 -0
  22. data/spec/support/v7.0/Gemfile +48 -0
  23. data/spec/support/v7.0/Gemfile.lock +218 -0
  24. data/spec/support/v7.0/README.md +24 -0
  25. data/spec/support/v7.0/Rakefile +6 -0
  26. data/spec/support/v7.0/app/assets/images/.keep +0 -0
  27. data/spec/support/v7.0/app/assets/stylesheets/application.css +1 -0
  28. data/spec/support/v7.0/app/controllers/application_controller.rb +3 -0
  29. data/spec/support/v7.0/app/controllers/concerns/.keep +0 -0
  30. data/spec/support/v7.0/app/helpers/application_helper.rb +3 -0
  31. data/spec/support/v7.0/app/helpers/bar_helper.rb +3 -0
  32. data/spec/support/v7.0/app/helpers/baz_helper.rb +3 -0
  33. data/spec/support/v7.0/app/helpers/foo_helper.rb +3 -0
  34. data/spec/support/v7.0/app/jobs/application_job.rb +8 -0
  35. data/spec/support/v7.0/app/jobs/award_house_point_hourglasses.rb +12 -0
  36. data/spec/support/v7.0/app/mailers/application_mailer.rb +5 -0
  37. data/spec/support/v7.0/app/mailers/daily_prophet_mailer.rb +9 -0
  38. data/spec/support/v7.0/app/mailers/hogwarts_acceptance_mailer.rb +29 -0
  39. data/spec/support/v7.0/app/models/application_record.rb +4 -0
  40. data/spec/support/v7.0/app/models/concerns/.keep +0 -0
  41. data/spec/support/v7.0/app/models/concerns/mythical.rb +11 -0
  42. data/spec/support/v7.0/app/models/headmaster.rb +8 -0
  43. data/spec/support/v7.0/app/models/potion.rb +6 -0
  44. data/spec/support/v7.0/app/models/robe.rb +4 -0
  45. data/spec/support/v7.0/app/models/school.rb +5 -0
  46. data/spec/support/v7.0/app/models/spell.rb +5 -0
  47. data/spec/support/v7.0/app/models/spell_book.rb +18 -0
  48. data/spec/support/v7.0/app/models/squib.rb +6 -0
  49. data/spec/support/v7.0/app/models/subject.rb +5 -0
  50. data/spec/support/v7.0/app/models/wand.rb +19 -0
  51. data/spec/support/v7.0/app/models/wizard.rb +65 -0
  52. data/spec/support/v7.0/app/views/layouts/application.html.erb +15 -0
  53. data/spec/support/v7.0/app/views/layouts/mailer.html.erb +13 -0
  54. data/spec/support/v7.0/app/views/layouts/mailer.text.erb +1 -0
  55. data/spec/support/v7.0/bin/bundle +114 -0
  56. data/spec/support/v7.0/bin/rails +4 -0
  57. data/spec/support/v7.0/bin/rake +4 -0
  58. data/spec/support/v7.0/bin/setup +33 -0
  59. data/spec/support/v7.0/config/application.rb +38 -0
  60. data/spec/support/v7.0/config/boot.rb +4 -0
  61. data/spec/support/v7.0/config/database.yml +25 -0
  62. data/spec/support/v7.0/config/environment.rb +6 -0
  63. data/spec/support/v7.0/config/environments/development.rb +69 -0
  64. data/spec/support/v7.0/config/environments/production.rb +83 -0
  65. data/spec/support/v7.0/config/environments/test.rb +61 -0
  66. data/spec/support/v7.0/config/initializers/content_security_policy.rb +26 -0
  67. data/spec/support/v7.0/config/initializers/filter_parameter_logging.rb +9 -0
  68. data/spec/support/v7.0/config/initializers/inflections.rb +17 -0
  69. data/spec/support/v7.0/config/initializers/permissions_policy.rb +12 -0
  70. data/spec/support/v7.0/config/initializers/sorbet_rails.rb +3 -0
  71. data/spec/support/v7.0/config/locales/en.yml +33 -0
  72. data/spec/support/v7.0/config/puma.rb +44 -0
  73. data/spec/support/v7.0/config/routes.rb +8 -0
  74. data/spec/support/v7.0/config/storage.yml +34 -0
  75. data/spec/support/v7.0/config.ru +6 -0
  76. data/spec/support/v7.0/db/migrate/20190620000001_create_wizards.rb +14 -0
  77. data/spec/support/v7.0/db/migrate/20190620000002_create_wands.rb +12 -0
  78. data/spec/support/v7.0/db/migrate/20190620000003_create_spell_books.rb +10 -0
  79. data/spec/support/v7.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +14 -0
  80. data/spec/support/v7.0/db/migrate/20190620000005_add_broom_to_wizard.rb +6 -0
  81. data/spec/support/v7.0/db/migrate/20190620000006_add_more_enums_to_wizard.rb +9 -0
  82. data/spec/support/v7.0/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  83. data/spec/support/v7.0/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  84. data/spec/support/v7.0/db/migrate/20190620000009_add_school.rb +10 -0
  85. data/spec/support/v7.0/db/migrate/20190620000010_add_subject.rb +8 -0
  86. data/spec/support/v7.0/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  87. data/spec/support/v7.0/db/migrate/20190620000012_add_spell.rb +8 -0
  88. data/spec/support/v7.0/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  89. data/spec/support/v7.0/db/migrate/20190620000014_create_headmasters.rb +9 -0
  90. data/spec/support/v7.0/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  91. data/spec/support/v7.0/db/schema.rb +98 -0
  92. data/spec/support/v7.0/db/seeds.rb +8 -0
  93. data/spec/support/v7.0/lib/assets/.keep +0 -0
  94. data/spec/support/v7.0/lib/mythical_rbi_plugin.rb +16 -0
  95. data/spec/support/v7.0/lib/tasks/.keep +0 -0
  96. data/spec/support/v7.0/log/.keep +0 -0
  97. data/spec/support/v7.0/sorbet_test_cases.rb +439 -0
  98. data/spec/support/v7.0/storage/.keep +0 -0
  99. data/spec/support/v7.0/tmp/.keep +0 -0
  100. data/spec/support/v7.0/tmp/pids/.keep +0 -0
  101. data/spec/support/v7.0/tmp/storage/.keep +0 -0
  102. data/spec/support/v7.0/vendor/.keep +0 -0
  103. data/spec/test_data/v5.2/expected_active_record_base.rbi +6 -0
  104. data/spec/test_data/v5.2/expected_active_record_relation.rbi +6 -0
  105. data/spec/test_data/v6.0/expected_active_record_base.rbi +6 -0
  106. data/spec/test_data/v6.0/expected_active_record_relation.rbi +6 -0
  107. data/spec/test_data/v6.1/expected_active_record_base.rbi +6 -0
  108. data/spec/test_data/v6.1/expected_active_record_relation.rbi +6 -0
  109. data/spec/test_data/v7.0/expected_active_record_base.rbi +119 -0
  110. data/spec/test_data/v7.0/expected_active_record_relation.rbi +180 -0
  111. data/spec/test_data/v7.0/expected_application_job.rbi +20 -0
  112. data/spec/test_data/v7.0/expected_application_mailer.rbi +5 -0
  113. data/spec/test_data/v7.0/expected_attachment.rbi +358 -0
  114. data/spec/test_data/v7.0/expected_award_house_point_hourglasses.rbi +20 -0
  115. data/spec/test_data/v7.0/expected_blob.rbi +394 -0
  116. data/spec/test_data/v7.0/expected_custom_application_job.rbi +21 -0
  117. data/spec/test_data/v7.0/expected_custom_application_mailer.rbi +6 -0
  118. data/spec/test_data/v7.0/expected_custom_award_house_point_hourglasses.rbi +21 -0
  119. data/spec/test_data/v7.0/expected_custom_daily_prophet_mailer.rbi +8 -0
  120. data/spec/test_data/v7.0/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  121. data/spec/test_data/v7.0/expected_daily_prophet_mailer.rbi +7 -0
  122. data/spec/test_data/v7.0/expected_headmaster.rbi +376 -0
  123. data/spec/test_data/v7.0/expected_helpers.rbi +27 -0
  124. data/spec/test_data/v7.0/expected_helpers_with_application_and_devise_helpers.rbi +34 -0
  125. data/spec/test_data/v7.0/expected_hogwarts_acceptance_mailer.rbi +20 -0
  126. data/spec/test_data/v7.0/expected_internal_metadata.rbi +346 -0
  127. data/spec/test_data/v7.0/expected_no_routes.rbi +4 -0
  128. data/spec/test_data/v7.0/expected_potion.rbi +328 -0
  129. data/spec/test_data/v7.0/expected_record.rbi +307 -0
  130. data/spec/test_data/v7.0/expected_robe.rbi +349 -0
  131. data/spec/test_data/v7.0/expected_routes.rbi +182 -0
  132. data/spec/test_data/v7.0/expected_schema_migration.rbi +319 -0
  133. data/spec/test_data/v7.0/expected_school.rbi +349 -0
  134. data/spec/test_data/v7.0/expected_spell/habtm_spell_books.rbi +367 -0
  135. data/spec/test_data/v7.0/expected_spell.rbi +340 -0
  136. data/spec/test_data/v7.0/expected_spell_book/habtm_spells.rbi +367 -0
  137. data/spec/test_data/v7.0/expected_spell_book.rbi +499 -0
  138. data/spec/test_data/v7.0/expected_squib.rbi +1204 -0
  139. data/spec/test_data/v7.0/expected_srb_tc_output.txt +1 -0
  140. data/spec/test_data/v7.0/expected_subject/habtm_wizards.rbi +367 -0
  141. data/spec/test_data/v7.0/expected_subject.rbi +340 -0
  142. data/spec/test_data/v7.0/expected_variant_record.rbi +382 -0
  143. data/spec/test_data/v7.0/expected_wand.rbi +611 -0
  144. data/spec/test_data/v7.0/expected_wizard/habtm_subjects.rbi +367 -0
  145. data/spec/test_data/v7.0/expected_wizard.rbi +1280 -0
  146. data/spec/test_data/v7.0/expected_wizard_wo_spellbook.rbi +1274 -0
  147. metadata +243 -1
@@ -0,0 +1,340 @@
1
+ # This is an autogenerated file for dynamic methods in Subject
2
+ # Please rerun bundle exec rake rails_rbi:models[Subject] to regenerate.
3
+
4
+ # typed: strong
5
+ module Subject::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 Subject::GeneratedAttributeMethods
11
+ sig { returns(Integer) }
12
+ def id; end
13
+
14
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
15
+ def id=(value); end
16
+
17
+ sig { returns(T::Boolean) }
18
+ def id?; end
19
+
20
+ sig { returns(T.nilable(String)) }
21
+ def name; end
22
+
23
+ sig { params(value: T.nilable(T.any(String, Symbol))).void }
24
+ def name=(value); end
25
+
26
+ sig { returns(T::Boolean) }
27
+ def name?; end
28
+ end
29
+
30
+ module Subject::GeneratedAssociationMethods
31
+ sig { returns(::Wizard::ActiveRecord_Associations_CollectionProxy) }
32
+ def wizards; end
33
+
34
+ sig { returns(T::Array[Integer]) }
35
+ def wizard_ids; end
36
+
37
+ sig { params(value: T::Enumerable[::Wizard]).void }
38
+ def wizards=(value); end
39
+ end
40
+
41
+ module Subject::CustomFinderMethods
42
+ sig { params(limit: Integer).returns(T::Array[Subject]) }
43
+ def first_n(limit); end
44
+
45
+ sig { params(limit: Integer).returns(T::Array[Subject]) }
46
+ def last_n(limit); end
47
+
48
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Subject]) }
49
+ def find_n(*args); end
50
+
51
+ sig { params(id: T.nilable(Integer)).returns(T.nilable(Subject)) }
52
+ def find_by_id(id); end
53
+
54
+ sig { params(id: Integer).returns(Subject) }
55
+ def find_by_id!(id); end
56
+ end
57
+
58
+ class Subject < ApplicationRecord
59
+ include Subject::GeneratedAttributeMethods
60
+ include Subject::GeneratedAssociationMethods
61
+ extend Subject::CustomFinderMethods
62
+ extend Subject::QueryMethodsReturningRelation
63
+ RelationType = T.type_alias { T.any(Subject::ActiveRecord_Relation, Subject::ActiveRecord_Associations_CollectionProxy, Subject::ActiveRecord_AssociationRelation) }
64
+ end
65
+
66
+ module Subject::QueryMethodsReturningRelation
67
+ sig { returns(Subject::ActiveRecord_Relation) }
68
+ def all; end
69
+
70
+ sig { params(block: T.nilable(T.proc.void)).returns(Subject::ActiveRecord_Relation) }
71
+ def unscoped(&block); end
72
+
73
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
74
+ def reselect(*args); end
75
+
76
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
77
+ def order(*args); end
78
+
79
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
80
+ def reorder(*args); end
81
+
82
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
83
+ def group(*args); end
84
+
85
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
86
+ def limit(*args); end
87
+
88
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
89
+ def offset(*args); end
90
+
91
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
92
+ def joins(*args); end
93
+
94
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
95
+ def left_joins(*args); end
96
+
97
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
98
+ def left_outer_joins(*args); end
99
+
100
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
101
+ def where(*args); end
102
+
103
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
104
+ def rewhere(*args); end
105
+
106
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
107
+ def preload(*args); end
108
+
109
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
110
+ def extract_associated(*args); end
111
+
112
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
113
+ def eager_load(*args); end
114
+
115
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
116
+ def includes(*args); end
117
+
118
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
119
+ def from(*args); end
120
+
121
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
122
+ def lock(*args); end
123
+
124
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
125
+ def readonly(*args); end
126
+
127
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
128
+ def or(*args); end
129
+
130
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
131
+ def having(*args); end
132
+
133
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
134
+ def create_with(*args); end
135
+
136
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
137
+ def distinct(*args); end
138
+
139
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
140
+ def references(*args); end
141
+
142
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
143
+ def none(*args); end
144
+
145
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
146
+ def unscope(*args); end
147
+
148
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
149
+ def optimizer_hints(*args); end
150
+
151
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
152
+ def merge(*args); end
153
+
154
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
155
+ def except(*args); end
156
+
157
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_Relation) }
158
+ def only(*args); end
159
+
160
+ sig { params(block: T.proc.params(e: Subject).returns(T::Boolean)).returns(T::Array[Subject]) }
161
+ def select(&block); end
162
+
163
+ sig { params(args: T.any(String, Symbol, T::Array[T.any(String, Symbol)])).returns(Subject::ActiveRecord_Relation) }
164
+ def select_columns(*args); end
165
+
166
+ sig { params(args: Symbol).returns(Subject::ActiveRecord_Relation) }
167
+ def where_missing(*args); end
168
+
169
+ sig { params(column: Symbol, values: T::Array[T.untyped]).returns(Subject::ActiveRecord_Relation) }
170
+ def in_order_of(column, values); end
171
+
172
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Subject::ActiveRecord_Relation) }
173
+ def extending(*args, &block); end
174
+
175
+ sig do
176
+ params(
177
+ of: T.nilable(Integer),
178
+ start: T.nilable(Integer),
179
+ finish: T.nilable(Integer),
180
+ load: T.nilable(T::Boolean),
181
+ error_on_ignore: T.nilable(T::Boolean),
182
+ block: T.nilable(T.proc.params(e: Subject::ActiveRecord_Relation).void)
183
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
184
+ end
185
+ def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
186
+ end
187
+
188
+ module Subject::QueryMethodsReturningAssociationRelation
189
+ sig { returns(Subject::ActiveRecord_AssociationRelation) }
190
+ def all; end
191
+
192
+ sig { params(block: T.nilable(T.proc.void)).returns(Subject::ActiveRecord_Relation) }
193
+ def unscoped(&block); end
194
+
195
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
196
+ def reselect(*args); end
197
+
198
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
199
+ def order(*args); end
200
+
201
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
202
+ def reorder(*args); end
203
+
204
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
205
+ def group(*args); end
206
+
207
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
208
+ def limit(*args); end
209
+
210
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
211
+ def offset(*args); end
212
+
213
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
214
+ def joins(*args); end
215
+
216
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
217
+ def left_joins(*args); end
218
+
219
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
220
+ def left_outer_joins(*args); end
221
+
222
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
223
+ def where(*args); end
224
+
225
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
226
+ def rewhere(*args); end
227
+
228
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
229
+ def preload(*args); end
230
+
231
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
232
+ def extract_associated(*args); end
233
+
234
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
235
+ def eager_load(*args); end
236
+
237
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
238
+ def includes(*args); end
239
+
240
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
241
+ def from(*args); end
242
+
243
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
244
+ def lock(*args); end
245
+
246
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
247
+ def readonly(*args); end
248
+
249
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
250
+ def or(*args); end
251
+
252
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
253
+ def having(*args); end
254
+
255
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
256
+ def create_with(*args); end
257
+
258
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
259
+ def distinct(*args); end
260
+
261
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
262
+ def references(*args); end
263
+
264
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
265
+ def none(*args); end
266
+
267
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
268
+ def unscope(*args); end
269
+
270
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
271
+ def optimizer_hints(*args); end
272
+
273
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
274
+ def merge(*args); end
275
+
276
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
277
+ def except(*args); end
278
+
279
+ sig { params(args: T.untyped).returns(Subject::ActiveRecord_AssociationRelation) }
280
+ def only(*args); end
281
+
282
+ sig { params(block: T.proc.params(e: Subject).returns(T::Boolean)).returns(T::Array[Subject]) }
283
+ def select(&block); end
284
+
285
+ sig { params(args: T.any(String, Symbol, T::Array[T.any(String, Symbol)])).returns(Subject::ActiveRecord_AssociationRelation) }
286
+ def select_columns(*args); end
287
+
288
+ sig { params(args: Symbol).returns(Subject::ActiveRecord_AssociationRelation) }
289
+ def where_missing(*args); end
290
+
291
+ sig { params(column: Symbol, values: T::Array[T.untyped]).returns(Subject::ActiveRecord_AssociationRelation) }
292
+ def in_order_of(column, values); end
293
+
294
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Subject::ActiveRecord_AssociationRelation) }
295
+ def extending(*args, &block); end
296
+
297
+ sig do
298
+ params(
299
+ of: T.nilable(Integer),
300
+ start: T.nilable(Integer),
301
+ finish: T.nilable(Integer),
302
+ load: T.nilable(T::Boolean),
303
+ error_on_ignore: T.nilable(T::Boolean),
304
+ block: T.nilable(T.proc.params(e: Subject::ActiveRecord_AssociationRelation).void)
305
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
306
+ end
307
+ def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
308
+ end
309
+
310
+ class Subject::ActiveRecord_Relation < ActiveRecord::Relation
311
+ include Subject::ActiveRelation_WhereNot
312
+ include Subject::CustomFinderMethods
313
+ include Subject::QueryMethodsReturningRelation
314
+ Elem = type_member {{fixed: Subject}}
315
+ end
316
+
317
+ class Subject::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
318
+ include Subject::ActiveRelation_WhereNot
319
+ include Subject::CustomFinderMethods
320
+ include Subject::QueryMethodsReturningAssociationRelation
321
+ Elem = type_member {{fixed: Subject}}
322
+ end
323
+
324
+ class Subject::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
325
+ include Subject::CustomFinderMethods
326
+ include Subject::QueryMethodsReturningAssociationRelation
327
+ Elem = type_member {{fixed: Subject}}
328
+
329
+ sig { params(records: T.any(Subject, T::Array[Subject])).returns(T.self_type) }
330
+ def <<(*records); end
331
+
332
+ sig { params(records: T.any(Subject, T::Array[Subject])).returns(T.self_type) }
333
+ def append(*records); end
334
+
335
+ sig { params(records: T.any(Subject, T::Array[Subject])).returns(T.self_type) }
336
+ def push(*records); end
337
+
338
+ sig { params(records: T.any(Subject, T::Array[Subject])).returns(T.self_type) }
339
+ def concat(*records); end
340
+ end