sorbet-rails 0.5.5 → 0.5.5.1

Sign up to get free protection for your applications and to get access to all the features.
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