sorbet-rails 0.6.2 → 0.6.3

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