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,1236 @@
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::GeneratedAssociationMethods
238
+ extend T::Sig
239
+
240
+ sig { returns(::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy) }
241
+ def hats_attachments; end
242
+
243
+ sig { params(value: T.any(T::Array[::ActiveStorage::Attachment], ::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy)).void }
244
+ def hats_attachments=(value); end
245
+
246
+ sig { returns(::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy) }
247
+ def hats_blobs; end
248
+
249
+ sig { params(value: T.any(T::Array[::ActiveStorage::Blob], ::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy)).void }
250
+ def hats_blobs=(value); end
251
+
252
+ sig { returns(T.nilable(::ActiveStorage::Attachment)) }
253
+ def school_photo_attachment; end
254
+
255
+ sig { params(value: T.nilable(::ActiveStorage::Attachment)).void }
256
+ def school_photo_attachment=(value); end
257
+
258
+ sig { returns(T.nilable(::ActiveStorage::Blob)) }
259
+ def school_photo_blob; end
260
+
261
+ sig { params(value: T.nilable(::ActiveStorage::Blob)).void }
262
+ def school_photo_blob=(value); end
263
+
264
+ sig { returns(::SpellBook::ActiveRecord_Associations_CollectionProxy) }
265
+ def spell_books; end
266
+
267
+ sig { params(value: T.any(T::Array[::SpellBook], ::SpellBook::ActiveRecord_Associations_CollectionProxy)).void }
268
+ def spell_books=(value); end
269
+
270
+ sig { returns(T.nilable(::Wand)) }
271
+ def wand; end
272
+
273
+ sig { params(value: T.nilable(::Wand)).void }
274
+ def wand=(value); end
275
+ end
276
+
277
+ module Squib::CustomFinderMethods
278
+ sig { params(limit: Integer).returns(T::Array[Squib]) }
279
+ def first_n(limit); end
280
+
281
+ sig { params(limit: Integer).returns(T::Array[Squib]) }
282
+ def last_n(limit); end
283
+
284
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Squib]) }
285
+ def find_n(*args); end
286
+
287
+ sig { params(id: Integer).returns(T.nilable(Squib)) }
288
+ def find_by_id(id); end
289
+
290
+ sig { params(id: Integer).returns(Squib) }
291
+ def find_by_id!(id); end
292
+ end
293
+
294
+ class Squib < Wizard
295
+ include Squib::EnumInstanceMethods
296
+ include Squib::GeneratedAttributeMethods
297
+ include Squib::GeneratedAssociationMethods
298
+ extend Squib::CustomFinderMethods
299
+ extend T::Sig
300
+ extend T::Generic
301
+
302
+ sig { returns(T::Hash[T.any(String, Symbol), String]) }
303
+ def self.brooms; end
304
+
305
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
306
+ def self.eye_colors; end
307
+
308
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
309
+ def self.hair_colors; end
310
+
311
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
312
+ def self.houses; end
313
+
314
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
315
+ def self.professors; end
316
+
317
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
318
+ def self.quidditch_positions; end
319
+
320
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
321
+ def self.Gryffindor(*args); end
322
+
323
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
324
+ def self.Hagrid(*args); end
325
+
326
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
327
+ def self.Hufflepuff(*args); end
328
+
329
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
330
+ def self.Ravenclaw(*args); end
331
+
332
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
333
+ def self.Slytherin(*args); end
334
+
335
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
336
+ def self.black_hair(*args); end
337
+
338
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
339
+ def self.blonde_hair(*args); end
340
+
341
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
342
+ def self.broom_firebolt(*args); end
343
+
344
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
345
+ def self.broom_nimbus(*args); end
346
+
347
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
348
+ def self.brown_hair(*args); end
349
+
350
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
351
+ def self.color_blue_eyes(*args); end
352
+
353
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
354
+ def self.color_brown_eyes(*args); end
355
+
356
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
357
+ def self.color_green_eyes(*args); end
358
+
359
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
360
+ def self.quidditch_beater(*args); end
361
+
362
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
363
+ def self.quidditch_chaser(*args); end
364
+
365
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
366
+ def self.quidditch_keeper(*args); end
367
+
368
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
369
+ def self.quidditch_seeker(*args); end
370
+
371
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
372
+ def self.recent(*args); end
373
+
374
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
375
+ def self.with_attached_hats(*args); end
376
+
377
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
378
+ def self.with_attached_school_photo(*args); end
379
+
380
+ sig { returns(Squib::ActiveRecord_Relation) }
381
+ def self.all; end
382
+
383
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
384
+ def self.unscoped(&block); end
385
+
386
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
387
+ def self.select(*args, &block); end
388
+
389
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
390
+ def self.order(*args, &block); end
391
+
392
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
393
+ def self.reorder(*args, &block); end
394
+
395
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
396
+ def self.group(*args, &block); end
397
+
398
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
399
+ def self.limit(*args, &block); end
400
+
401
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
402
+ def self.offset(*args, &block); end
403
+
404
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
405
+ def self.joins(*args, &block); end
406
+
407
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
408
+ def self.left_joins(*args, &block); end
409
+
410
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
411
+ def self.left_outer_joins(*args, &block); end
412
+
413
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
414
+ def self.where(*args, &block); end
415
+
416
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
417
+ def self.rewhere(*args, &block); end
418
+
419
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
420
+ def self.preload(*args, &block); end
421
+
422
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
423
+ def self.eager_load(*args, &block); end
424
+
425
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
426
+ def self.includes(*args, &block); end
427
+
428
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
429
+ def self.from(*args, &block); end
430
+
431
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
432
+ def self.lock(*args, &block); end
433
+
434
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
435
+ def self.readonly(*args, &block); end
436
+
437
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
438
+ def self.extending(*args, &block); end
439
+
440
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
441
+ def self.or(*args, &block); end
442
+
443
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
444
+ def self.having(*args, &block); end
445
+
446
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
447
+ def self.create_with(*args, &block); end
448
+
449
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
450
+ def self.distinct(*args, &block); end
451
+
452
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
453
+ def self.references(*args, &block); end
454
+
455
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
456
+ def self.none(*args, &block); end
457
+
458
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
459
+ def self.unscope(*args, &block); end
460
+
461
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
462
+ def self.merge(*args, &block); end
463
+
464
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
465
+ def self.except(*args, &block); end
466
+
467
+ sig { params(args: T.untyped).returns(Squib) }
468
+ def self.find(*args); end
469
+
470
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
471
+ def self.find_by(*args); end
472
+
473
+ sig { params(args: T.untyped).returns(Squib) }
474
+ def self.find_by!(*args); end
475
+
476
+ sig { returns(T.nilable(Squib)) }
477
+ def self.first; end
478
+
479
+ sig { returns(Squib) }
480
+ def self.first!; end
481
+
482
+ sig { returns(T.nilable(Squib)) }
483
+ def self.second; end
484
+
485
+ sig { returns(Squib) }
486
+ def self.second!; end
487
+
488
+ sig { returns(T.nilable(Squib)) }
489
+ def self.third; end
490
+
491
+ sig { returns(Squib) }
492
+ def self.third!; end
493
+
494
+ sig { returns(T.nilable(Squib)) }
495
+ def self.third_to_last; end
496
+
497
+ sig { returns(Squib) }
498
+ def self.third_to_last!; end
499
+
500
+ sig { returns(T.nilable(Squib)) }
501
+ def self.second_to_last; end
502
+
503
+ sig { returns(Squib) }
504
+ def self.second_to_last!; end
505
+
506
+ sig { returns(T.nilable(Squib)) }
507
+ def self.last; end
508
+
509
+ sig { returns(Squib) }
510
+ def self.last!; end
511
+
512
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
513
+ def self.exists?(conditions = nil); end
514
+
515
+ sig { params(args: T.untyped).returns(T::Boolean) }
516
+ def self.any?(*args); end
517
+
518
+ sig { params(args: T.untyped).returns(T::Boolean) }
519
+ def self.many?(*args); end
520
+
521
+ sig { params(args: T.untyped).returns(T::Boolean) }
522
+ def self.none?(*args); end
523
+
524
+ sig { params(args: T.untyped).returns(T::Boolean) }
525
+ def self.one?(*args); end
526
+ end
527
+
528
+ class Squib::ActiveRecord_Relation < ActiveRecord::Relation
529
+ include Squib::ActiveRelation_WhereNot
530
+ include Squib::CustomFinderMethods
531
+ include Enumerable
532
+ extend T::Sig
533
+ extend T::Generic
534
+ Elem = type_member(fixed: Squib)
535
+
536
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
537
+ def Gryffindor(*args); end
538
+
539
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
540
+ def Hagrid(*args); end
541
+
542
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
543
+ def Hufflepuff(*args); end
544
+
545
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
546
+ def Ravenclaw(*args); end
547
+
548
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
549
+ def Slytherin(*args); end
550
+
551
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
552
+ def black_hair(*args); end
553
+
554
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
555
+ def blonde_hair(*args); end
556
+
557
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
558
+ def broom_firebolt(*args); end
559
+
560
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
561
+ def broom_nimbus(*args); end
562
+
563
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
564
+ def brown_hair(*args); end
565
+
566
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
567
+ def color_blue_eyes(*args); end
568
+
569
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
570
+ def color_brown_eyes(*args); end
571
+
572
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
573
+ def color_green_eyes(*args); end
574
+
575
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
576
+ def quidditch_beater(*args); end
577
+
578
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
579
+ def quidditch_chaser(*args); end
580
+
581
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
582
+ def quidditch_keeper(*args); end
583
+
584
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
585
+ def quidditch_seeker(*args); end
586
+
587
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
588
+ def recent(*args); end
589
+
590
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
591
+ def with_attached_hats(*args); end
592
+
593
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_Relation) }
594
+ def with_attached_school_photo(*args); end
595
+
596
+ sig { returns(Squib::ActiveRecord_Relation) }
597
+ def all; end
598
+
599
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
600
+ def unscoped(&block); end
601
+
602
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
603
+ def select(*args, &block); end
604
+
605
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
606
+ def order(*args, &block); end
607
+
608
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
609
+ def reorder(*args, &block); end
610
+
611
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
612
+ def group(*args, &block); end
613
+
614
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
615
+ def limit(*args, &block); end
616
+
617
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
618
+ def offset(*args, &block); end
619
+
620
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
621
+ def joins(*args, &block); end
622
+
623
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
624
+ def left_joins(*args, &block); end
625
+
626
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
627
+ def left_outer_joins(*args, &block); end
628
+
629
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
630
+ def where(*args, &block); end
631
+
632
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
633
+ def rewhere(*args, &block); end
634
+
635
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
636
+ def preload(*args, &block); end
637
+
638
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
639
+ def eager_load(*args, &block); end
640
+
641
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
642
+ def includes(*args, &block); end
643
+
644
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
645
+ def from(*args, &block); end
646
+
647
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
648
+ def lock(*args, &block); end
649
+
650
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
651
+ def readonly(*args, &block); end
652
+
653
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
654
+ def extending(*args, &block); end
655
+
656
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
657
+ def or(*args, &block); end
658
+
659
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
660
+ def having(*args, &block); end
661
+
662
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
663
+ def create_with(*args, &block); end
664
+
665
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
666
+ def distinct(*args, &block); end
667
+
668
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
669
+ def references(*args, &block); end
670
+
671
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
672
+ def none(*args, &block); end
673
+
674
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
675
+ def unscope(*args, &block); end
676
+
677
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
678
+ def merge(*args, &block); end
679
+
680
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_Relation) }
681
+ def except(*args, &block); end
682
+
683
+ sig { params(args: T.untyped).returns(Squib) }
684
+ def find(*args); end
685
+
686
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
687
+ def find_by(*args); end
688
+
689
+ sig { params(args: T.untyped).returns(Squib) }
690
+ def find_by!(*args); end
691
+
692
+ sig { returns(T.nilable(Squib)) }
693
+ def first; end
694
+
695
+ sig { returns(Squib) }
696
+ def first!; end
697
+
698
+ sig { returns(T.nilable(Squib)) }
699
+ def second; end
700
+
701
+ sig { returns(Squib) }
702
+ def second!; end
703
+
704
+ sig { returns(T.nilable(Squib)) }
705
+ def third; end
706
+
707
+ sig { returns(Squib) }
708
+ def third!; end
709
+
710
+ sig { returns(T.nilable(Squib)) }
711
+ def third_to_last; end
712
+
713
+ sig { returns(Squib) }
714
+ def third_to_last!; end
715
+
716
+ sig { returns(T.nilable(Squib)) }
717
+ def second_to_last; end
718
+
719
+ sig { returns(Squib) }
720
+ def second_to_last!; end
721
+
722
+ sig { returns(T.nilable(Squib)) }
723
+ def last; end
724
+
725
+ sig { returns(Squib) }
726
+ def last!; end
727
+
728
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
729
+ def exists?(conditions = nil); end
730
+
731
+ sig { params(args: T.untyped).returns(T::Boolean) }
732
+ def any?(*args); end
733
+
734
+ sig { params(args: T.untyped).returns(T::Boolean) }
735
+ def many?(*args); end
736
+
737
+ sig { params(args: T.untyped).returns(T::Boolean) }
738
+ def none?(*args); end
739
+
740
+ sig { params(args: T.untyped).returns(T::Boolean) }
741
+ def one?(*args); end
742
+
743
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
744
+ def each(&block); end
745
+
746
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
747
+ def flatten(level); end
748
+
749
+ sig { returns(T::Array[Squib]) }
750
+ def to_a; end
751
+
752
+ sig do
753
+ type_parameters(:U).params(
754
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
755
+ )
756
+ .returns(T::Array[T.type_parameter(:U)])
757
+ end
758
+ def map(&blk); end
759
+ end
760
+
761
+ class Squib::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
762
+ include Squib::ActiveRelation_WhereNot
763
+ include Squib::CustomFinderMethods
764
+ include Enumerable
765
+ extend T::Sig
766
+ extend T::Generic
767
+ Elem = type_member(fixed: Squib)
768
+
769
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
770
+ def Gryffindor(*args); end
771
+
772
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
773
+ def Hagrid(*args); end
774
+
775
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
776
+ def Hufflepuff(*args); end
777
+
778
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
779
+ def Ravenclaw(*args); end
780
+
781
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
782
+ def Slytherin(*args); end
783
+
784
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
785
+ def black_hair(*args); end
786
+
787
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
788
+ def blonde_hair(*args); end
789
+
790
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
791
+ def broom_firebolt(*args); end
792
+
793
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
794
+ def broom_nimbus(*args); end
795
+
796
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
797
+ def brown_hair(*args); end
798
+
799
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
800
+ def color_blue_eyes(*args); end
801
+
802
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
803
+ def color_brown_eyes(*args); end
804
+
805
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
806
+ def color_green_eyes(*args); end
807
+
808
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
809
+ def quidditch_beater(*args); end
810
+
811
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
812
+ def quidditch_chaser(*args); end
813
+
814
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
815
+ def quidditch_keeper(*args); end
816
+
817
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
818
+ def quidditch_seeker(*args); end
819
+
820
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
821
+ def recent(*args); end
822
+
823
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
824
+ def with_attached_hats(*args); end
825
+
826
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
827
+ def with_attached_school_photo(*args); end
828
+
829
+ sig { returns(Squib::ActiveRecord_AssociationRelation) }
830
+ def all; end
831
+
832
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
833
+ def unscoped(&block); end
834
+
835
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
836
+ def select(*args, &block); end
837
+
838
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
839
+ def order(*args, &block); end
840
+
841
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
842
+ def reorder(*args, &block); end
843
+
844
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
845
+ def group(*args, &block); end
846
+
847
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
848
+ def limit(*args, &block); end
849
+
850
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
851
+ def offset(*args, &block); end
852
+
853
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
854
+ def joins(*args, &block); end
855
+
856
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
857
+ def left_joins(*args, &block); end
858
+
859
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
860
+ def left_outer_joins(*args, &block); end
861
+
862
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
863
+ def where(*args, &block); end
864
+
865
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
866
+ def rewhere(*args, &block); end
867
+
868
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
869
+ def preload(*args, &block); end
870
+
871
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
872
+ def eager_load(*args, &block); end
873
+
874
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
875
+ def includes(*args, &block); end
876
+
877
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
878
+ def from(*args, &block); end
879
+
880
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
881
+ def lock(*args, &block); end
882
+
883
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
884
+ def readonly(*args, &block); end
885
+
886
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
887
+ def extending(*args, &block); end
888
+
889
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
890
+ def or(*args, &block); end
891
+
892
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
893
+ def having(*args, &block); end
894
+
895
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
896
+ def create_with(*args, &block); end
897
+
898
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
899
+ def distinct(*args, &block); end
900
+
901
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
902
+ def references(*args, &block); end
903
+
904
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
905
+ def none(*args, &block); end
906
+
907
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
908
+ def unscope(*args, &block); end
909
+
910
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
911
+ def merge(*args, &block); end
912
+
913
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
914
+ def except(*args, &block); end
915
+
916
+ sig { params(args: T.untyped).returns(Squib) }
917
+ def find(*args); end
918
+
919
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
920
+ def find_by(*args); end
921
+
922
+ sig { params(args: T.untyped).returns(Squib) }
923
+ def find_by!(*args); end
924
+
925
+ sig { returns(T.nilable(Squib)) }
926
+ def first; end
927
+
928
+ sig { returns(Squib) }
929
+ def first!; end
930
+
931
+ sig { returns(T.nilable(Squib)) }
932
+ def second; end
933
+
934
+ sig { returns(Squib) }
935
+ def second!; end
936
+
937
+ sig { returns(T.nilable(Squib)) }
938
+ def third; end
939
+
940
+ sig { returns(Squib) }
941
+ def third!; end
942
+
943
+ sig { returns(T.nilable(Squib)) }
944
+ def third_to_last; end
945
+
946
+ sig { returns(Squib) }
947
+ def third_to_last!; end
948
+
949
+ sig { returns(T.nilable(Squib)) }
950
+ def second_to_last; end
951
+
952
+ sig { returns(Squib) }
953
+ def second_to_last!; end
954
+
955
+ sig { returns(T.nilable(Squib)) }
956
+ def last; end
957
+
958
+ sig { returns(Squib) }
959
+ def last!; end
960
+
961
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
962
+ def exists?(conditions = nil); end
963
+
964
+ sig { params(args: T.untyped).returns(T::Boolean) }
965
+ def any?(*args); end
966
+
967
+ sig { params(args: T.untyped).returns(T::Boolean) }
968
+ def many?(*args); end
969
+
970
+ sig { params(args: T.untyped).returns(T::Boolean) }
971
+ def none?(*args); end
972
+
973
+ sig { params(args: T.untyped).returns(T::Boolean) }
974
+ def one?(*args); end
975
+
976
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
977
+ def each(&block); end
978
+
979
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
980
+ def flatten(level); end
981
+
982
+ sig { returns(T::Array[Squib]) }
983
+ def to_a; end
984
+
985
+ sig do
986
+ type_parameters(:U).params(
987
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
988
+ )
989
+ .returns(T::Array[T.type_parameter(:U)])
990
+ end
991
+ def map(&blk); end
992
+ end
993
+
994
+ class Squib::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
995
+ include Squib::CustomFinderMethods
996
+ include Enumerable
997
+ extend T::Sig
998
+ extend T::Generic
999
+ Elem = type_member(fixed: Squib)
1000
+
1001
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1002
+ def Gryffindor(*args); end
1003
+
1004
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1005
+ def Hagrid(*args); end
1006
+
1007
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1008
+ def Hufflepuff(*args); end
1009
+
1010
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1011
+ def Ravenclaw(*args); end
1012
+
1013
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1014
+ def Slytherin(*args); end
1015
+
1016
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1017
+ def black_hair(*args); end
1018
+
1019
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1020
+ def blonde_hair(*args); end
1021
+
1022
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1023
+ def broom_firebolt(*args); end
1024
+
1025
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1026
+ def broom_nimbus(*args); end
1027
+
1028
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1029
+ def brown_hair(*args); end
1030
+
1031
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1032
+ def color_blue_eyes(*args); end
1033
+
1034
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1035
+ def color_brown_eyes(*args); end
1036
+
1037
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1038
+ def color_green_eyes(*args); end
1039
+
1040
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1041
+ def quidditch_beater(*args); end
1042
+
1043
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1044
+ def quidditch_chaser(*args); end
1045
+
1046
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1047
+ def quidditch_keeper(*args); end
1048
+
1049
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1050
+ def quidditch_seeker(*args); end
1051
+
1052
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1053
+ def recent(*args); end
1054
+
1055
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1056
+ def with_attached_hats(*args); end
1057
+
1058
+ sig { params(args: T.untyped).returns(Squib::ActiveRecord_AssociationRelation) }
1059
+ def with_attached_school_photo(*args); end
1060
+
1061
+ sig { returns(Squib::ActiveRecord_AssociationRelation) }
1062
+ def all; end
1063
+
1064
+ sig { params(block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1065
+ def unscoped(&block); end
1066
+
1067
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1068
+ def select(*args, &block); end
1069
+
1070
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1071
+ def order(*args, &block); end
1072
+
1073
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1074
+ def reorder(*args, &block); end
1075
+
1076
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1077
+ def group(*args, &block); end
1078
+
1079
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1080
+ def limit(*args, &block); end
1081
+
1082
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1083
+ def offset(*args, &block); end
1084
+
1085
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1086
+ def joins(*args, &block); end
1087
+
1088
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1089
+ def left_joins(*args, &block); end
1090
+
1091
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1092
+ def left_outer_joins(*args, &block); end
1093
+
1094
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1095
+ def where(*args, &block); end
1096
+
1097
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1098
+ def rewhere(*args, &block); end
1099
+
1100
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1101
+ def preload(*args, &block); end
1102
+
1103
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1104
+ def eager_load(*args, &block); end
1105
+
1106
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1107
+ def includes(*args, &block); end
1108
+
1109
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1110
+ def from(*args, &block); end
1111
+
1112
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1113
+ def lock(*args, &block); end
1114
+
1115
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1116
+ def readonly(*args, &block); end
1117
+
1118
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1119
+ def extending(*args, &block); end
1120
+
1121
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1122
+ def or(*args, &block); end
1123
+
1124
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1125
+ def having(*args, &block); end
1126
+
1127
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1128
+ def create_with(*args, &block); end
1129
+
1130
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1131
+ def distinct(*args, &block); end
1132
+
1133
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1134
+ def references(*args, &block); end
1135
+
1136
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1137
+ def none(*args, &block); end
1138
+
1139
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1140
+ def unscope(*args, &block); end
1141
+
1142
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1143
+ def merge(*args, &block); end
1144
+
1145
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Squib::ActiveRecord_AssociationRelation) }
1146
+ def except(*args, &block); end
1147
+
1148
+ sig { params(args: T.untyped).returns(Squib) }
1149
+ def find(*args); end
1150
+
1151
+ sig { params(args: T.untyped).returns(T.nilable(Squib)) }
1152
+ def find_by(*args); end
1153
+
1154
+ sig { params(args: T.untyped).returns(Squib) }
1155
+ def find_by!(*args); end
1156
+
1157
+ sig { returns(T.nilable(Squib)) }
1158
+ def first; end
1159
+
1160
+ sig { returns(Squib) }
1161
+ def first!; end
1162
+
1163
+ sig { returns(T.nilable(Squib)) }
1164
+ def second; end
1165
+
1166
+ sig { returns(Squib) }
1167
+ def second!; end
1168
+
1169
+ sig { returns(T.nilable(Squib)) }
1170
+ def third; end
1171
+
1172
+ sig { returns(Squib) }
1173
+ def third!; end
1174
+
1175
+ sig { returns(T.nilable(Squib)) }
1176
+ def third_to_last; end
1177
+
1178
+ sig { returns(Squib) }
1179
+ def third_to_last!; end
1180
+
1181
+ sig { returns(T.nilable(Squib)) }
1182
+ def second_to_last; end
1183
+
1184
+ sig { returns(Squib) }
1185
+ def second_to_last!; end
1186
+
1187
+ sig { returns(T.nilable(Squib)) }
1188
+ def last; end
1189
+
1190
+ sig { returns(Squib) }
1191
+ def last!; end
1192
+
1193
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
1194
+ def exists?(conditions = nil); end
1195
+
1196
+ sig { params(args: T.untyped).returns(T::Boolean) }
1197
+ def any?(*args); end
1198
+
1199
+ sig { params(args: T.untyped).returns(T::Boolean) }
1200
+ def many?(*args); end
1201
+
1202
+ sig { params(args: T.untyped).returns(T::Boolean) }
1203
+ def none?(*args); end
1204
+
1205
+ sig { params(args: T.untyped).returns(T::Boolean) }
1206
+ def one?(*args); end
1207
+
1208
+ sig { override.params(block: T.proc.params(e: Squib).void).void }
1209
+ def each(&block); end
1210
+
1211
+ sig { params(level: T.nilable(Integer)).returns(T::Array[Squib]) }
1212
+ def flatten(level); end
1213
+
1214
+ sig { returns(T::Array[Squib]) }
1215
+ def to_a; end
1216
+
1217
+ sig do
1218
+ type_parameters(:U).params(
1219
+ blk: T.proc.params(arg0: Elem).returns(T.type_parameter(:U)),
1220
+ )
1221
+ .returns(T::Array[T.type_parameter(:U)])
1222
+ end
1223
+ def map(&blk); end
1224
+
1225
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1226
+ def <<(*records); end
1227
+
1228
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1229
+ def append(*records); end
1230
+
1231
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1232
+ def push(*records); end
1233
+
1234
+ sig { params(records: T.any(Squib, T::Array[Squib])).returns(T.self_type) }
1235
+ def concat(*records); end
1236
+ end