sorbet-rails 0.5.5 → 0.5.5.1

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -1
  3. data/lib/sorbet-rails.rb +2 -0
  4. data/lib/sorbet-rails/custom_types/boolean_string.rb +32 -0
  5. data/lib/sorbet-rails/custom_types/integer_string.rb +35 -0
  6. data/lib/sorbet-rails/model_plugins/active_record_enum.rb +5 -1
  7. data/lib/sorbet-rails/rails_mixins/active_record_overrides.rb +18 -4
  8. data/lib/sorbet-rails/tasks/rails_rbi.rake +1 -2
  9. data/lib/sorbet-rails/type_assert/type_assert.rb +0 -1
  10. data/lib/sorbet-rails/type_assert/type_assert_impl.rb +16 -16
  11. data/sorbet-rails.gemspec +1 -1
  12. data/spec/boolean_string_spec.rb +59 -0
  13. data/spec/generators/rails-template.rb +16 -0
  14. data/spec/integer_string_spec.rb +46 -0
  15. data/spec/rake_rails_rbi_models_spec.rb +1 -0
  16. data/spec/support/v4.2/Gemfile.lock +4 -4
  17. data/spec/support/v4.2/app/models/squib.rb +6 -0
  18. data/spec/support/v4.2/app/models/wizard.rb +1 -2
  19. data/spec/support/v4.2/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  20. data/spec/support/v4.2/db/schema.rb +2 -1
  21. data/spec/support/v5.0/Gemfile.lock +4 -4
  22. data/spec/support/v5.0/app/models/squib.rb +6 -0
  23. data/spec/support/v5.0/app/models/wizard.rb +1 -1
  24. data/spec/support/v5.0/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  25. data/spec/support/v5.0/db/schema.rb +4 -3
  26. data/spec/support/v5.1/Gemfile.lock +4 -4
  27. data/spec/support/v5.1/app/models/squib.rb +6 -0
  28. data/spec/support/v5.1/app/models/wizard.rb +1 -1
  29. data/spec/support/v5.1/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  30. data/spec/support/v5.1/db/schema.rb +2 -1
  31. data/spec/support/v5.2/Gemfile.lock +4 -4
  32. data/spec/support/v5.2/app/models/squib.rb +6 -0
  33. data/spec/support/v5.2/app/models/wizard.rb +1 -1
  34. data/spec/support/v5.2/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  35. data/spec/support/v5.2/db/schema.rb +2 -1
  36. data/spec/support/v6.0/Gemfile.lock +5 -5
  37. data/spec/support/v6.0/app/models/squib.rb +6 -0
  38. data/spec/support/v6.0/app/models/wizard.rb +1 -1
  39. data/spec/support/v6.0/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  40. data/spec/support/v6.0/db/schema.rb +2 -1
  41. data/spec/test_data/v4.2/expected_squib.rbi +903 -0
  42. data/spec/test_data/v4.2/expected_wizard.rbi +9 -0
  43. data/spec/test_data/v4.2/expected_wizard_wo_spellbook.rbi +9 -0
  44. data/spec/test_data/v5.0/expected_squib.rbi +1164 -0
  45. data/spec/test_data/v5.0/expected_wizard.rbi +9 -0
  46. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +9 -0
  47. data/spec/test_data/v5.1/expected_squib.rbi +1188 -0
  48. data/spec/test_data/v5.1/expected_wizard.rbi +9 -0
  49. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +9 -0
  50. data/spec/test_data/v5.2/expected_squib.rbi +1236 -0
  51. data/spec/test_data/v5.2/expected_wizard.rbi +9 -0
  52. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +9 -0
  53. data/spec/test_data/v6.0/expected_squib.rbi +1500 -0
  54. data/spec/test_data/v6.0/expected_wizard.rbi +9 -0
  55. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +9 -0
  56. metadata +37 -1
@@ -215,6 +215,15 @@ module Wizard::GeneratedAttributeMethods
215
215
  sig { returns(T::Boolean) }
216
216
  def quidditch_position?; end
217
217
 
218
+ sig { returns(String) }
219
+ def type; end
220
+
221
+ sig { params(value: String).void }
222
+ def type=(value); end
223
+
224
+ sig { returns(T::Boolean) }
225
+ def type?; end
226
+
218
227
  sig { returns(DateTime) }
219
228
  def updated_at; end
220
229
 
@@ -215,6 +215,15 @@ module Wizard::GeneratedAttributeMethods
215
215
  sig { returns(T::Boolean) }
216
216
  def quidditch_position?; end
217
217
 
218
+ sig { returns(String) }
219
+ def type; end
220
+
221
+ sig { params(value: String).void }
222
+ def type=(value); end
223
+
224
+ sig { returns(T::Boolean) }
225
+ def type?; end
226
+
218
227
  sig { returns(DateTime) }
219
228
  def updated_at; end
220
229
 
@@ -0,0 +1,1500 @@
1
+ # This is an autogenerated file for dynamic methods in Squib
2
+ # Please rerun rake rails_rbi:models[Squib] to regenerate.
3
+
4
+ # typed: strong
5
+ module Squib::EnumInstanceMethods
6
+ extend T::Sig
7
+
8
+ sig { returns(T::Boolean) }
9
+ def broom_nimbus?; end
10
+
11
+ sig { void }
12
+ def broom_nimbus!; end
13
+
14
+ sig { returns(T::Boolean) }
15
+ def broom_firebolt?; end
16
+
17
+ sig { void }
18
+ def broom_firebolt!; end
19
+
20
+ sig { returns(T::Boolean) }
21
+ def color_brown_eyes?; end
22
+
23
+ sig { void }
24
+ def color_brown_eyes!; end
25
+
26
+ sig { returns(T::Boolean) }
27
+ def color_green_eyes?; end
28
+
29
+ sig { void }
30
+ def color_green_eyes!; end
31
+
32
+ sig { returns(T::Boolean) }
33
+ def color_blue_eyes?; end
34
+
35
+ sig { void }
36
+ def color_blue_eyes!; end
37
+
38
+ sig { returns(T::Boolean) }
39
+ def brown_hair?; end
40
+
41
+ sig { void }
42
+ def brown_hair!; end
43
+
44
+ sig { returns(T::Boolean) }
45
+ def black_hair?; end
46
+
47
+ sig { void }
48
+ def black_hair!; end
49
+
50
+ sig { returns(T::Boolean) }
51
+ def blonde_hair?; end
52
+
53
+ sig { void }
54
+ def blonde_hair!; end
55
+
56
+ sig { returns(T::Boolean) }
57
+ def Gryffindor?; end
58
+
59
+ sig { void }
60
+ def Gryffindor!; end
61
+
62
+ sig { returns(T::Boolean) }
63
+ def Hufflepuff?; end
64
+
65
+ sig { void }
66
+ def Hufflepuff!; end
67
+
68
+ sig { returns(T::Boolean) }
69
+ def Ravenclaw?; end
70
+
71
+ sig { void }
72
+ def Ravenclaw!; end
73
+
74
+ sig { returns(T::Boolean) }
75
+ def Slytherin?; end
76
+
77
+ sig { void }
78
+ def Slytherin!; end
79
+
80
+ sig { returns(T::Boolean) }
81
+ def Hagrid?; end
82
+
83
+ sig { void }
84
+ def Hagrid!; end
85
+
86
+ sig { returns(T::Boolean) }
87
+ def quidditch_keeper?; end
88
+
89
+ sig { void }
90
+ def quidditch_keeper!; end
91
+
92
+ sig { returns(T::Boolean) }
93
+ def quidditch_seeker?; end
94
+
95
+ sig { void }
96
+ def quidditch_seeker!; end
97
+
98
+ sig { returns(T::Boolean) }
99
+ def quidditch_beater?; end
100
+
101
+ sig { void }
102
+ def quidditch_beater!; end
103
+
104
+ sig { returns(T::Boolean) }
105
+ def quidditch_chaser?; end
106
+
107
+ sig { void }
108
+ def quidditch_chaser!; end
109
+ end
110
+
111
+ module Squib::ActiveRelation_WhereNot
112
+ sig { params(opts: T.untyped, rest: T.untyped).returns(T.self_type) }
113
+ def not(opts, *rest); end
114
+ end
115
+
116
+ module Squib::GeneratedAttributeMethods
117
+ extend T::Sig
118
+
119
+ sig { returns(T.nilable(String)) }
120
+ def broom; end
121
+
122
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
123
+ def broom=(value); end
124
+
125
+ sig { returns(T::Boolean) }
126
+ def broom?; end
127
+
128
+ sig { returns(DateTime) }
129
+ def created_at; end
130
+
131
+ sig { params(value: DateTime).void }
132
+ def created_at=(value); end
133
+
134
+ sig { returns(T::Boolean) }
135
+ def created_at?; end
136
+
137
+ sig { returns(T.nilable(String)) }
138
+ def eye_color; end
139
+
140
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
141
+ def eye_color=(value); end
142
+
143
+ sig { returns(T::Boolean) }
144
+ def eye_color?; end
145
+
146
+ sig { returns(T.nilable(String)) }
147
+ def hair_color; end
148
+
149
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
150
+ def hair_color=(value); end
151
+
152
+ sig { returns(T::Boolean) }
153
+ def hair_color?; end
154
+
155
+ sig { returns(T.nilable(Integer)) }
156
+ def hair_length; end
157
+
158
+ sig { params(value: T.nilable(Integer)).void }
159
+ def hair_length=(value); end
160
+
161
+ sig { returns(T::Boolean) }
162
+ def hair_length?; end
163
+
164
+ sig { returns(T.nilable(String)) }
165
+ def house; end
166
+
167
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
168
+ def house=(value); end
169
+
170
+ sig { returns(T::Boolean) }
171
+ def house?; end
172
+
173
+ sig { returns(Integer) }
174
+ def id; end
175
+
176
+ sig { params(value: Integer).void }
177
+ def id=(value); end
178
+
179
+ sig { returns(T::Boolean) }
180
+ def id?; end
181
+
182
+ sig { returns(T.nilable(String)) }
183
+ def name; end
184
+
185
+ sig { params(value: T.nilable(String)).void }
186
+ def name=(value); end
187
+
188
+ sig { returns(T::Boolean) }
189
+ def name?; end
190
+
191
+ sig { returns(T.nilable(String)) }
192
+ def notes; end
193
+
194
+ sig { params(value: T.nilable(String)).void }
195
+ def notes=(value); end
196
+
197
+ sig { returns(T::Boolean) }
198
+ def notes?; end
199
+
200
+ sig { returns(T.nilable(String)) }
201
+ def parent_email; end
202
+
203
+ sig { params(value: T.nilable(String)).void }
204
+ def parent_email=(value); end
205
+
206
+ sig { returns(T::Boolean) }
207
+ def parent_email?; end
208
+
209
+ sig { returns(T.nilable(String)) }
210
+ def quidditch_position; end
211
+
212
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
213
+ def quidditch_position=(value); end
214
+
215
+ sig { returns(T::Boolean) }
216
+ def quidditch_position?; end
217
+
218
+ sig { returns(String) }
219
+ def type; end
220
+
221
+ sig { params(value: String).void }
222
+ def type=(value); end
223
+
224
+ sig { returns(T::Boolean) }
225
+ def type?; end
226
+
227
+ sig { returns(DateTime) }
228
+ def updated_at; end
229
+
230
+ sig { params(value: DateTime).void }
231
+ def updated_at=(value); end
232
+
233
+ sig { returns(T::Boolean) }
234
+ def updated_at?; end
235
+ end
236
+
237
+ module Squib::CustomFinderMethods
238
+ sig { params(limit: Integer).returns(T::Array[Squib]) }
239
+ def first_n(limit); end
240
+
241
+ sig { params(limit: Integer).returns(T::Array[Squib]) }
242
+ def last_n(limit); end
243
+
244
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Squib]) }
245
+ def find_n(*args); end
246
+
247
+ sig { params(id: Integer).returns(T.nilable(Squib)) }
248
+ def find_by_id(id); end
249
+
250
+ sig { params(id: Integer).returns(Squib) }
251
+ def find_by_id!(id); end
252
+ end
253
+
254
+ class Squib < Wizard
255
+ include Squib::EnumInstanceMethods
256
+ include Squib::GeneratedAttributeMethods
257
+ include Squib::GeneratedAssociationMethods
258
+ extend Squib::CustomFinderMethods
259
+ extend T::Sig
260
+ extend T::Generic
261
+
262
+ sig { returns(T::Hash[T.any(String, Symbol), String]) }
263
+ def self.brooms; end
264
+
265
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
266
+ def self.eye_colors; end
267
+
268
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
269
+ def self.hair_colors; end
270
+
271
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
272
+ def self.houses; end
273
+
274
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
275
+ def self.professors; end
276
+
277
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
278
+ def self.quidditch_positions; end
279
+
280
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
281
+ def self.Gryffindor(*args); end
282
+
283
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
284
+ def self.Hagrid(*args); end
285
+
286
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
287
+ def self.Hufflepuff(*args); end
288
+
289
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
290
+ def self.Ravenclaw(*args); end
291
+
292
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
293
+ def self.Slytherin(*args); end
294
+
295
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
296
+ def self.black_hair(*args); end
297
+
298
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
299
+ def self.blonde_hair(*args); end
300
+
301
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
302
+ def self.broom_firebolt(*args); end
303
+
304
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
305
+ def self.broom_nimbus(*args); end
306
+
307
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
308
+ def self.brown_hair(*args); end
309
+
310
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
311
+ def self.color_blue_eyes(*args); end
312
+
313
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
314
+ def self.color_brown_eyes(*args); end
315
+
316
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
317
+ def self.color_green_eyes(*args); end
318
+
319
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
320
+ def self.not_Gryffindor(*args); end
321
+
322
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
323
+ def self.not_Hagrid(*args); end
324
+
325
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
326
+ def self.not_Hufflepuff(*args); end
327
+
328
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
329
+ def self.not_Ravenclaw(*args); end
330
+
331
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
332
+ def self.not_Slytherin(*args); end
333
+
334
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
335
+ def self.not_black_hair(*args); end
336
+
337
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
338
+ def self.not_blonde_hair(*args); end
339
+
340
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
341
+ def self.not_broom_firebolt(*args); end
342
+
343
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
344
+ def self.not_broom_nimbus(*args); end
345
+
346
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
347
+ def self.not_brown_hair(*args); end
348
+
349
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
350
+ def self.not_color_blue_eyes(*args); end
351
+
352
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
353
+ def self.not_color_brown_eyes(*args); end
354
+
355
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
356
+ def self.not_color_green_eyes(*args); end
357
+
358
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
359
+ def self.not_quidditch_beater(*args); end
360
+
361
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
362
+ def self.not_quidditch_chaser(*args); end
363
+
364
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
365
+ def self.not_quidditch_keeper(*args); end
366
+
367
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
368
+ def self.not_quidditch_seeker(*args); end
369
+
370
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
371
+ def self.quidditch_beater(*args); end
372
+
373
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
374
+ def self.quidditch_chaser(*args); end
375
+
376
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
377
+ def self.quidditch_keeper(*args); end
378
+
379
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
380
+ def self.quidditch_seeker(*args); end
381
+
382
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
383
+ def self.recent(*args); end
384
+
385
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
386
+ def self.with_attached_hats(*args); end
387
+
388
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
389
+ def self.with_attached_school_photo(*args); end
390
+
391
+ sig { returns(Squib::ActiveRecord_Relation) }
392
+ def self.all; end
393
+
394
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
395
+ def self.unscoped(&block); end
396
+
397
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
398
+ def self.select(*args, &block); end
399
+
400
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
401
+ def self.reselect(*args, &block); end
402
+
403
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
404
+ def self.order(*args, &block); end
405
+
406
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
407
+ def self.reorder(*args, &block); end
408
+
409
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
410
+ def self.group(*args, &block); end
411
+
412
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
413
+ def self.limit(*args, &block); end
414
+
415
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
416
+ def self.offset(*args, &block); end
417
+
418
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
419
+ def self.joins(*args, &block); end
420
+
421
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
422
+ def self.left_joins(*args, &block); end
423
+
424
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
425
+ def self.left_outer_joins(*args, &block); end
426
+
427
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
428
+ def self.where(*args, &block); end
429
+
430
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
431
+ def self.rewhere(*args, &block); end
432
+
433
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
434
+ def self.preload(*args, &block); end
435
+
436
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
437
+ def self.extract_associated(*args, &block); end
438
+
439
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
440
+ def self.eager_load(*args, &block); end
441
+
442
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
443
+ def self.includes(*args, &block); end
444
+
445
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
446
+ def self.from(*args, &block); end
447
+
448
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
449
+ def self.lock(*args, &block); end
450
+
451
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
452
+ def self.readonly(*args, &block); end
453
+
454
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
455
+ def self.extending(*args, &block); end
456
+
457
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
458
+ def self.or(*args, &block); end
459
+
460
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
461
+ def self.having(*args, &block); end
462
+
463
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
464
+ def self.create_with(*args, &block); end
465
+
466
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
467
+ def self.distinct(*args, &block); end
468
+
469
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
470
+ def self.references(*args, &block); end
471
+
472
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
473
+ def self.none(*args, &block); end
474
+
475
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
476
+ def self.unscope(*args, &block); end
477
+
478
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
479
+ def self.optimizer_hints(*args, &block); end
480
+
481
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
482
+ def self.merge(*args, &block); end
483
+
484
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
485
+ def self.except(*args, &block); end
486
+
487
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
488
+ def self.only(*args, &block); end
489
+
490
+ sig { params(args: T.untyped).returns(Squib) }
491
+ def self.find(*args); end
492
+
493
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
494
+ def self.find_by(*args); end
495
+
496
+ sig { params(args: T.untyped).returns(Squib) }
497
+ def self.find_by!(*args); end
498
+
499
+ sig { returns(T.nilable(Squib)) }
500
+ def self.first; end
501
+
502
+ sig { returns(Squib) }
503
+ def self.first!; end
504
+
505
+ sig { returns(T.nilable(Squib)) }
506
+ def self.second; end
507
+
508
+ sig { returns(Squib) }
509
+ def self.second!; end
510
+
511
+ sig { returns(T.nilable(Squib)) }
512
+ def self.third; end
513
+
514
+ sig { returns(Squib) }
515
+ def self.third!; end
516
+
517
+ sig { returns(T.nilable(Squib)) }
518
+ def self.third_to_last; end
519
+
520
+ sig { returns(Squib) }
521
+ def self.third_to_last!; end
522
+
523
+ sig { returns(T.nilable(Squib)) }
524
+ def self.second_to_last; end
525
+
526
+ sig { returns(Squib) }
527
+ def self.second_to_last!; end
528
+
529
+ sig { returns(T.nilable(Squib)) }
530
+ def self.last; end
531
+
532
+ sig { returns(Squib) }
533
+ def self.last!; end
534
+
535
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
536
+ def self.exists?(conditions = nil); end
537
+
538
+ sig { params(args: T.untyped).returns(T::Boolean) }
539
+ def self.any?(*args); end
540
+
541
+ sig { params(args: T.untyped).returns(T::Boolean) }
542
+ def self.many?(*args); end
543
+
544
+ sig { params(args: T.untyped).returns(T::Boolean) }
545
+ def self.none?(*args); end
546
+
547
+ sig { params(args: T.untyped).returns(T::Boolean) }
548
+ def self.one?(*args); end
549
+ end
550
+
551
+ class Squib::ActiveRecord_Relation < ActiveRecord::Relation
552
+ include Squib::ActiveRelation_WhereNot
553
+ include Squib::CustomFinderMethods
554
+ include Enumerable
555
+ extend T::Sig
556
+ extend T::Generic
557
+ Elem = type_member(fixed: Squib)
558
+
559
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
560
+ def Gryffindor(*args); end
561
+
562
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
563
+ def Hagrid(*args); end
564
+
565
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
566
+ def Hufflepuff(*args); end
567
+
568
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
569
+ def Ravenclaw(*args); end
570
+
571
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
572
+ def Slytherin(*args); end
573
+
574
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
575
+ def black_hair(*args); end
576
+
577
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
578
+ def blonde_hair(*args); end
579
+
580
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
581
+ def broom_firebolt(*args); end
582
+
583
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
584
+ def broom_nimbus(*args); end
585
+
586
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
587
+ def brown_hair(*args); end
588
+
589
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
590
+ def color_blue_eyes(*args); end
591
+
592
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
593
+ def color_brown_eyes(*args); end
594
+
595
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
596
+ def color_green_eyes(*args); end
597
+
598
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
599
+ def not_Gryffindor(*args); end
600
+
601
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
602
+ def not_Hagrid(*args); end
603
+
604
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
605
+ def not_Hufflepuff(*args); end
606
+
607
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
608
+ def not_Ravenclaw(*args); end
609
+
610
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
611
+ def not_Slytherin(*args); end
612
+
613
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
614
+ def not_black_hair(*args); end
615
+
616
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
617
+ def not_blonde_hair(*args); end
618
+
619
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
620
+ def not_broom_firebolt(*args); end
621
+
622
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
623
+ def not_broom_nimbus(*args); end
624
+
625
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
626
+ def not_brown_hair(*args); end
627
+
628
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
629
+ def not_color_blue_eyes(*args); end
630
+
631
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
632
+ def not_color_brown_eyes(*args); end
633
+
634
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
635
+ def not_color_green_eyes(*args); end
636
+
637
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
638
+ def not_quidditch_beater(*args); end
639
+
640
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
641
+ def not_quidditch_chaser(*args); end
642
+
643
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
644
+ def not_quidditch_keeper(*args); end
645
+
646
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
647
+ def not_quidditch_seeker(*args); end
648
+
649
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
650
+ def quidditch_beater(*args); end
651
+
652
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
653
+ def quidditch_chaser(*args); end
654
+
655
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
656
+ def quidditch_keeper(*args); end
657
+
658
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
659
+ def quidditch_seeker(*args); end
660
+
661
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
662
+ def recent(*args); end
663
+
664
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
665
+ def with_attached_hats(*args); end
666
+
667
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
668
+ def with_attached_school_photo(*args); end
669
+
670
+ sig { returns(Squib::ActiveRecord_Relation) }
671
+ def all; end
672
+
673
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
674
+ def unscoped(&block); end
675
+
676
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
677
+ def select(*args, &block); end
678
+
679
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
680
+ def reselect(*args, &block); end
681
+
682
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
683
+ def order(*args, &block); end
684
+
685
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
686
+ def reorder(*args, &block); end
687
+
688
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
689
+ def group(*args, &block); end
690
+
691
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
692
+ def limit(*args, &block); end
693
+
694
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
695
+ def offset(*args, &block); end
696
+
697
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
698
+ def joins(*args, &block); end
699
+
700
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
701
+ def left_joins(*args, &block); end
702
+
703
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
704
+ def left_outer_joins(*args, &block); end
705
+
706
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
707
+ def where(*args, &block); end
708
+
709
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
710
+ def rewhere(*args, &block); end
711
+
712
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
713
+ def preload(*args, &block); end
714
+
715
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
716
+ def extract_associated(*args, &block); end
717
+
718
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
719
+ def eager_load(*args, &block); end
720
+
721
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
722
+ def includes(*args, &block); end
723
+
724
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
725
+ def from(*args, &block); end
726
+
727
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
728
+ def lock(*args, &block); end
729
+
730
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
731
+ def readonly(*args, &block); end
732
+
733
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
734
+ def extending(*args, &block); end
735
+
736
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
737
+ def or(*args, &block); end
738
+
739
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
740
+ def having(*args, &block); end
741
+
742
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
743
+ def create_with(*args, &block); end
744
+
745
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
746
+ def distinct(*args, &block); end
747
+
748
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
749
+ def references(*args, &block); end
750
+
751
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
752
+ def none(*args, &block); end
753
+
754
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
755
+ def unscope(*args, &block); end
756
+
757
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
758
+ def optimizer_hints(*args, &block); end
759
+
760
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
761
+ def merge(*args, &block); end
762
+
763
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
764
+ def except(*args, &block); end
765
+
766
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
767
+ def only(*args, &block); end
768
+
769
+ sig { params(args: T.untyped).returns(Squib) }
770
+ def find(*args); end
771
+
772
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
773
+ def find_by(*args); end
774
+
775
+ sig { params(args: T.untyped).returns(Squib) }
776
+ def find_by!(*args); end
777
+
778
+ sig { returns(T.nilable(Squib)) }
779
+ def first; end
780
+
781
+ sig { returns(Squib) }
782
+ def first!; end
783
+
784
+ sig { returns(T.nilable(Squib)) }
785
+ def second; end
786
+
787
+ sig { returns(Squib) }
788
+ def second!; end
789
+
790
+ sig { returns(T.nilable(Squib)) }
791
+ def third; end
792
+
793
+ sig { returns(Squib) }
794
+ def third!; end
795
+
796
+ sig { returns(T.nilable(Squib)) }
797
+ def third_to_last; end
798
+
799
+ sig { returns(Squib) }
800
+ def third_to_last!; end
801
+
802
+ sig { returns(T.nilable(Squib)) }
803
+ def second_to_last; end
804
+
805
+ sig { returns(Squib) }
806
+ def second_to_last!; end
807
+
808
+ sig { returns(T.nilable(Squib)) }
809
+ def last; end
810
+
811
+ sig { returns(Squib) }
812
+ def last!; end
813
+
814
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
815
+ def exists?(conditions = nil); end
816
+
817
+ sig { params(args: T.untyped).returns(T::Boolean) }
818
+ def any?(*args); end
819
+
820
+ sig { params(args: T.untyped).returns(T::Boolean) }
821
+ def many?(*args); end
822
+
823
+ sig { params(args: T.untyped).returns(T::Boolean) }
824
+ def none?(*args); end
825
+
826
+ sig { params(args: T.untyped).returns(T::Boolean) }
827
+ def one?(*args); end
828
+
829
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
830
+ def each(&block); end
831
+
832
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
833
+ def flatten(level); end
834
+
835
+ sig { returns(T::Array[Squib]) }
836
+ def to_a; end
837
+
838
+ sig do
839
+ type_parameters(:U).params(
840
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
841
+ )
842
+ .returns(T::Array[T.type_parameter(:U)])
843
+ end
844
+ def map(&blk); end
845
+ end
846
+
847
+ class Squib::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
848
+ include Squib::ActiveRelation_WhereNot
849
+ include Squib::CustomFinderMethods
850
+ include Enumerable
851
+ extend T::Sig
852
+ extend T::Generic
853
+ Elem = type_member(fixed: Squib)
854
+
855
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
856
+ def Gryffindor(*args); end
857
+
858
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
859
+ def Hagrid(*args); end
860
+
861
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
862
+ def Hufflepuff(*args); end
863
+
864
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
865
+ def Ravenclaw(*args); end
866
+
867
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
868
+ def Slytherin(*args); end
869
+
870
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
871
+ def black_hair(*args); end
872
+
873
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
874
+ def blonde_hair(*args); end
875
+
876
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
877
+ def broom_firebolt(*args); end
878
+
879
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
880
+ def broom_nimbus(*args); end
881
+
882
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
883
+ def brown_hair(*args); end
884
+
885
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
886
+ def color_blue_eyes(*args); end
887
+
888
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
889
+ def color_brown_eyes(*args); end
890
+
891
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
892
+ def color_green_eyes(*args); end
893
+
894
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
895
+ def not_Gryffindor(*args); end
896
+
897
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
898
+ def not_Hagrid(*args); end
899
+
900
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
901
+ def not_Hufflepuff(*args); end
902
+
903
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
904
+ def not_Ravenclaw(*args); end
905
+
906
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
907
+ def not_Slytherin(*args); end
908
+
909
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
910
+ def not_black_hair(*args); end
911
+
912
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
913
+ def not_blonde_hair(*args); end
914
+
915
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
916
+ def not_broom_firebolt(*args); end
917
+
918
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
919
+ def not_broom_nimbus(*args); end
920
+
921
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
922
+ def not_brown_hair(*args); end
923
+
924
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
925
+ def not_color_blue_eyes(*args); end
926
+
927
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
928
+ def not_color_brown_eyes(*args); end
929
+
930
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
931
+ def not_color_green_eyes(*args); end
932
+
933
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
934
+ def not_quidditch_beater(*args); end
935
+
936
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
937
+ def not_quidditch_chaser(*args); end
938
+
939
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
940
+ def not_quidditch_keeper(*args); end
941
+
942
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
943
+ def not_quidditch_seeker(*args); end
944
+
945
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
946
+ def quidditch_beater(*args); end
947
+
948
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
949
+ def quidditch_chaser(*args); end
950
+
951
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
952
+ def quidditch_keeper(*args); end
953
+
954
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
955
+ def quidditch_seeker(*args); end
956
+
957
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
958
+ def recent(*args); end
959
+
960
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
961
+ def with_attached_hats(*args); end
962
+
963
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
964
+ def with_attached_school_photo(*args); end
965
+
966
+ sig { returns(Squib::ActiveRecord_AssociationRelation) }
967
+ def all; end
968
+
969
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
970
+ def unscoped(&block); end
971
+
972
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
973
+ def select(*args, &block); end
974
+
975
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
976
+ def reselect(*args, &block); end
977
+
978
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
979
+ def order(*args, &block); end
980
+
981
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
982
+ def reorder(*args, &block); end
983
+
984
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
985
+ def group(*args, &block); end
986
+
987
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
988
+ def limit(*args, &block); end
989
+
990
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
991
+ def offset(*args, &block); end
992
+
993
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
994
+ def joins(*args, &block); end
995
+
996
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
997
+ def left_joins(*args, &block); end
998
+
999
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1000
+ def left_outer_joins(*args, &block); end
1001
+
1002
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1003
+ def where(*args, &block); end
1004
+
1005
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1006
+ def rewhere(*args, &block); end
1007
+
1008
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1009
+ def preload(*args, &block); end
1010
+
1011
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1012
+ def extract_associated(*args, &block); end
1013
+
1014
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1015
+ def eager_load(*args, &block); end
1016
+
1017
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1018
+ def includes(*args, &block); end
1019
+
1020
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1021
+ def from(*args, &block); end
1022
+
1023
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1024
+ def lock(*args, &block); end
1025
+
1026
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1027
+ def readonly(*args, &block); end
1028
+
1029
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1030
+ def extending(*args, &block); end
1031
+
1032
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1033
+ def or(*args, &block); end
1034
+
1035
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1036
+ def having(*args, &block); end
1037
+
1038
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1039
+ def create_with(*args, &block); end
1040
+
1041
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1042
+ def distinct(*args, &block); end
1043
+
1044
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1045
+ def references(*args, &block); end
1046
+
1047
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1048
+ def none(*args, &block); end
1049
+
1050
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1051
+ def unscope(*args, &block); end
1052
+
1053
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1054
+ def optimizer_hints(*args, &block); end
1055
+
1056
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1057
+ def merge(*args, &block); end
1058
+
1059
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1060
+ def except(*args, &block); end
1061
+
1062
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1063
+ def only(*args, &block); end
1064
+
1065
+ sig { params(args: T.untyped).returns(Squib) }
1066
+ def find(*args); end
1067
+
1068
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
1069
+ def find_by(*args); end
1070
+
1071
+ sig { params(args: T.untyped).returns(Squib) }
1072
+ def find_by!(*args); end
1073
+
1074
+ sig { returns(T.nilable(Squib)) }
1075
+ def first; end
1076
+
1077
+ sig { returns(Squib) }
1078
+ def first!; end
1079
+
1080
+ sig { returns(T.nilable(Squib)) }
1081
+ def second; end
1082
+
1083
+ sig { returns(Squib) }
1084
+ def second!; end
1085
+
1086
+ sig { returns(T.nilable(Squib)) }
1087
+ def third; end
1088
+
1089
+ sig { returns(Squib) }
1090
+ def third!; end
1091
+
1092
+ sig { returns(T.nilable(Squib)) }
1093
+ def third_to_last; end
1094
+
1095
+ sig { returns(Squib) }
1096
+ def third_to_last!; end
1097
+
1098
+ sig { returns(T.nilable(Squib)) }
1099
+ def second_to_last; end
1100
+
1101
+ sig { returns(Squib) }
1102
+ def second_to_last!; end
1103
+
1104
+ sig { returns(T.nilable(Squib)) }
1105
+ def last; end
1106
+
1107
+ sig { returns(Squib) }
1108
+ def last!; end
1109
+
1110
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
1111
+ def exists?(conditions = nil); end
1112
+
1113
+ sig { params(args: T.untyped).returns(T::Boolean) }
1114
+ def any?(*args); end
1115
+
1116
+ sig { params(args: T.untyped).returns(T::Boolean) }
1117
+ def many?(*args); end
1118
+
1119
+ sig { params(args: T.untyped).returns(T::Boolean) }
1120
+ def none?(*args); end
1121
+
1122
+ sig { params(args: T.untyped).returns(T::Boolean) }
1123
+ def one?(*args); end
1124
+
1125
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
1126
+ def each(&block); end
1127
+
1128
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
1129
+ def flatten(level); end
1130
+
1131
+ sig { returns(T::Array[Squib]) }
1132
+ def to_a; end
1133
+
1134
+ sig do
1135
+ type_parameters(:U).params(
1136
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
1137
+ )
1138
+ .returns(T::Array[T.type_parameter(:U)])
1139
+ end
1140
+ def map(&blk); end
1141
+ end
1142
+
1143
+ class Squib::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
1144
+ include Squib::CustomFinderMethods
1145
+ include Enumerable
1146
+ extend T::Sig
1147
+ extend T::Generic
1148
+ Elem = type_member(fixed: Squib)
1149
+
1150
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1151
+ def Gryffindor(*args); end
1152
+
1153
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1154
+ def Hagrid(*args); end
1155
+
1156
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1157
+ def Hufflepuff(*args); end
1158
+
1159
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1160
+ def Ravenclaw(*args); end
1161
+
1162
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1163
+ def Slytherin(*args); end
1164
+
1165
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1166
+ def black_hair(*args); end
1167
+
1168
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1169
+ def blonde_hair(*args); end
1170
+
1171
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1172
+ def broom_firebolt(*args); end
1173
+
1174
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1175
+ def broom_nimbus(*args); end
1176
+
1177
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1178
+ def brown_hair(*args); end
1179
+
1180
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1181
+ def color_blue_eyes(*args); end
1182
+
1183
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1184
+ def color_brown_eyes(*args); end
1185
+
1186
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1187
+ def color_green_eyes(*args); end
1188
+
1189
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1190
+ def not_Gryffindor(*args); end
1191
+
1192
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1193
+ def not_Hagrid(*args); end
1194
+
1195
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1196
+ def not_Hufflepuff(*args); end
1197
+
1198
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1199
+ def not_Ravenclaw(*args); end
1200
+
1201
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1202
+ def not_Slytherin(*args); end
1203
+
1204
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1205
+ def not_black_hair(*args); end
1206
+
1207
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1208
+ def not_blonde_hair(*args); end
1209
+
1210
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1211
+ def not_broom_firebolt(*args); end
1212
+
1213
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1214
+ def not_broom_nimbus(*args); end
1215
+
1216
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1217
+ def not_brown_hair(*args); end
1218
+
1219
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1220
+ def not_color_blue_eyes(*args); end
1221
+
1222
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1223
+ def not_color_brown_eyes(*args); end
1224
+
1225
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1226
+ def not_color_green_eyes(*args); end
1227
+
1228
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1229
+ def not_quidditch_beater(*args); end
1230
+
1231
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1232
+ def not_quidditch_chaser(*args); end
1233
+
1234
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1235
+ def not_quidditch_keeper(*args); end
1236
+
1237
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1238
+ def not_quidditch_seeker(*args); end
1239
+
1240
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1241
+ def quidditch_beater(*args); end
1242
+
1243
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1244
+ def quidditch_chaser(*args); end
1245
+
1246
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1247
+ def quidditch_keeper(*args); end
1248
+
1249
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1250
+ def quidditch_seeker(*args); end
1251
+
1252
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1253
+ def recent(*args); end
1254
+
1255
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1256
+ def with_attached_hats(*args); end
1257
+
1258
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1259
+ def with_attached_school_photo(*args); end
1260
+
1261
+ sig { returns(Squib::ActiveRecord_AssociationRelation) }
1262
+ def all; end
1263
+
1264
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1265
+ def unscoped(&block); end
1266
+
1267
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1268
+ def select(*args, &block); end
1269
+
1270
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1271
+ def reselect(*args, &block); end
1272
+
1273
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1274
+ def order(*args, &block); end
1275
+
1276
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1277
+ def reorder(*args, &block); end
1278
+
1279
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1280
+ def group(*args, &block); end
1281
+
1282
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1283
+ def limit(*args, &block); end
1284
+
1285
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1286
+ def offset(*args, &block); end
1287
+
1288
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1289
+ def joins(*args, &block); end
1290
+
1291
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1292
+ def left_joins(*args, &block); end
1293
+
1294
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1295
+ def left_outer_joins(*args, &block); end
1296
+
1297
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1298
+ def where(*args, &block); end
1299
+
1300
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1301
+ def rewhere(*args, &block); end
1302
+
1303
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1304
+ def preload(*args, &block); end
1305
+
1306
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1307
+ def extract_associated(*args, &block); end
1308
+
1309
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1310
+ def eager_load(*args, &block); end
1311
+
1312
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1313
+ def includes(*args, &block); end
1314
+
1315
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1316
+ def from(*args, &block); end
1317
+
1318
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1319
+ def lock(*args, &block); end
1320
+
1321
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1322
+ def readonly(*args, &block); end
1323
+
1324
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1325
+ def extending(*args, &block); end
1326
+
1327
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1328
+ def or(*args, &block); end
1329
+
1330
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1331
+ def having(*args, &block); end
1332
+
1333
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1334
+ def create_with(*args, &block); end
1335
+
1336
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1337
+ def distinct(*args, &block); end
1338
+
1339
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1340
+ def references(*args, &block); end
1341
+
1342
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1343
+ def none(*args, &block); end
1344
+
1345
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1346
+ def unscope(*args, &block); end
1347
+
1348
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1349
+ def optimizer_hints(*args, &block); end
1350
+
1351
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1352
+ def merge(*args, &block); end
1353
+
1354
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1355
+ def except(*args, &block); end
1356
+
1357
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1358
+ def only(*args, &block); end
1359
+
1360
+ sig { params(args: T.untyped).returns(Squib) }
1361
+ def find(*args); end
1362
+
1363
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
1364
+ def find_by(*args); end
1365
+
1366
+ sig { params(args: T.untyped).returns(Squib) }
1367
+ def find_by!(*args); end
1368
+
1369
+ sig { returns(T.nilable(Squib)) }
1370
+ def first; end
1371
+
1372
+ sig { returns(Squib) }
1373
+ def first!; end
1374
+
1375
+ sig { returns(T.nilable(Squib)) }
1376
+ def second; end
1377
+
1378
+ sig { returns(Squib) }
1379
+ def second!; end
1380
+
1381
+ sig { returns(T.nilable(Squib)) }
1382
+ def third; end
1383
+
1384
+ sig { returns(Squib) }
1385
+ def third!; end
1386
+
1387
+ sig { returns(T.nilable(Squib)) }
1388
+ def third_to_last; end
1389
+
1390
+ sig { returns(Squib) }
1391
+ def third_to_last!; end
1392
+
1393
+ sig { returns(T.nilable(Squib)) }
1394
+ def second_to_last; end
1395
+
1396
+ sig { returns(Squib) }
1397
+ def second_to_last!; end
1398
+
1399
+ sig { returns(T.nilable(Squib)) }
1400
+ def last; end
1401
+
1402
+ sig { returns(Squib) }
1403
+ def last!; end
1404
+
1405
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
1406
+ def exists?(conditions = nil); end
1407
+
1408
+ sig { params(args: T.untyped).returns(T::Boolean) }
1409
+ def any?(*args); end
1410
+
1411
+ sig { params(args: T.untyped).returns(T::Boolean) }
1412
+ def many?(*args); end
1413
+
1414
+ sig { params(args: T.untyped).returns(T::Boolean) }
1415
+ def none?(*args); end
1416
+
1417
+ sig { params(args: T.untyped).returns(T::Boolean) }
1418
+ def one?(*args); end
1419
+
1420
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
1421
+ def each(&block); end
1422
+
1423
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
1424
+ def flatten(level); end
1425
+
1426
+ sig { returns(T::Array[Squib]) }
1427
+ def to_a; end
1428
+
1429
+ sig do
1430
+ type_parameters(:U).params(
1431
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
1432
+ )
1433
+ .returns(T::Array[T.type_parameter(:U)])
1434
+ end
1435
+ def map(&blk); end
1436
+
1437
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1438
+ def <<(*records); end
1439
+
1440
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1441
+ def append(*records); end
1442
+
1443
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1444
+ def push(*records); end
1445
+
1446
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1447
+ def concat(*records); end
1448
+ end
1449
+
1450
+ module Squib::GeneratedAssociationMethods
1451
+ extend T::Sig
1452
+
1453
+ sig { returns(::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy) }
1454
+ def hats_attachments; end
1455
+
1456
+ sig { params(value: T.any(T::Array[::ActiveStorage::Attachment], ::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy)).void }
1457
+ def hats_attachments=(value); end
1458
+
1459
+ sig { returns(::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy) }
1460
+ def hats_blobs; end
1461
+
1462
+ sig { params(value: T.any(T::Array[::ActiveStorage::Blob], ::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy)).void }
1463
+ def hats_blobs=(value); end
1464
+
1465
+ sig { returns(T.nilable(::ActiveStorage::Attachment)) }
1466
+ def school_photo_attachment; end
1467
+
1468
+ sig { params(value: T.nilable(::ActiveStorage::Attachment)).void }
1469
+ def school_photo_attachment=(value); end
1470
+
1471
+ sig { returns(T.nilable(::ActiveStorage::Blob)) }
1472
+ def school_photo_blob; end
1473
+
1474
+ sig { params(value: T.nilable(::ActiveStorage::Blob)).void }
1475
+ def school_photo_blob=(value); end
1476
+
1477
+ sig { returns(::SpellBook::ActiveRecord_Associations_CollectionProxy) }
1478
+ def spell_books; end
1479
+
1480
+ sig { params(value: T.any(T::Array[::SpellBook], ::SpellBook::ActiveRecord_Associations_CollectionProxy)).void }
1481
+ def spell_books=(value); end
1482
+
1483
+ sig { returns(T.nilable(::Wand)) }
1484
+ def wand; end
1485
+
1486
+ sig { params(value: T.nilable(::Wand)).void }
1487
+ def wand=(value); end
1488
+
1489
+ sig { returns(T.nilable(ActiveStorage::Attached::One)) }
1490
+ def school_photo; end
1491
+
1492
+ sig { params(attachable: T.untyped).returns(T.untyped) }
1493
+ def school_photo=(attachable); end
1494
+
1495
+ sig { returns(T.nilable(ActiveStorage::Attached::Many)) }
1496
+ def hats; end
1497
+
1498
+ sig { params(attachables: T.untyped).returns(T.untyped) }
1499
+ def hats=(*attachables); end
1500
+ end