sorbet-rails 0.6.5 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -2
  3. data/.gitignore +2 -1
  4. data/.travis.yml +1 -1
  5. data/README.md +60 -11
  6. data/Rakefile +3 -3
  7. data/lib/bundled_rbi/customizabel_rbi_formatter.rbi +29 -0
  8. data/lib/bundled_rbi/pluck_to_tstruct.rbi +2 -1
  9. data/lib/bundled_rbi/typed_enum.rbi +7 -0
  10. data/lib/sorbet-rails.rb +1 -3
  11. data/lib/sorbet-rails/active_record_rbi_formatter.rb +2 -2
  12. data/lib/sorbet-rails/config.rb +12 -0
  13. data/lib/sorbet-rails/dependent_gem_rbis/activerecord.rbi +3 -0
  14. data/lib/sorbet-rails/deprecation.rb +1 -0
  15. data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +8 -0
  16. data/lib/sorbet-rails/helper_rbi_formatter.rb +1 -1
  17. data/lib/sorbet-rails/job_rbi_formatter.rb +75 -62
  18. data/lib/sorbet-rails/mailer_rbi_formatter.rb +40 -27
  19. data/lib/sorbet-rails/model_column_utils.rb +129 -0
  20. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +40 -1
  21. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +12 -112
  22. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +2 -2
  23. data/lib/sorbet-rails/model_plugins/active_record_serialized_attribute.rb +68 -0
  24. data/lib/sorbet-rails/model_plugins/base.rb +6 -8
  25. data/lib/sorbet-rails/model_plugins/plugins.rb +3 -0
  26. data/lib/sorbet-rails/model_rbi_formatter.rb +3 -3
  27. data/lib/sorbet-rails/model_utils.rb +5 -2
  28. data/lib/sorbet-rails/rails_mixins/generated_url_helpers.rb +2 -3
  29. data/lib/sorbet-rails/rails_mixins/pluck_to_tstruct.rb +54 -7
  30. data/lib/sorbet-rails/railtie.rb +0 -2
  31. data/lib/sorbet-rails/routes_rbi_formatter.rb +6 -2
  32. data/lib/sorbet-rails/sorbet_utils.rb +152 -150
  33. data/lib/sorbet-rails/tasks/rails_rbi.rake +9 -8
  34. data/sorbet-rails.gemspec +2 -2
  35. data/spec/bin/run_spec.sh +1 -1
  36. data/spec/generators/rails-template.rb +16 -0
  37. data/spec/generators/sorbet_test_cases.rb +29 -57
  38. data/spec/job_rbi_formatter_spec.rb +1 -1
  39. data/spec/pluck_to_tstruct_spec.rb +115 -16
  40. data/spec/rails_helper.rb +2 -2
  41. data/spec/rake_rails_rbi_jobs_spec.rb +20 -0
  42. data/spec/rake_rails_rbi_mailers_spec.rb +21 -0
  43. data/spec/sorbet_spec.rb +5 -5
  44. data/spec/support/v5.0/Gemfile +1 -1
  45. data/spec/support/v5.0/Gemfile.lock +15 -14
  46. data/spec/support/v5.0/app/controllers/application_controller.rb +1 -1
  47. data/spec/support/v5.0/app/models/headmaster.rb +1 -1
  48. data/spec/support/v5.0/app/models/potion.rb +1 -1
  49. data/spec/support/v5.0/app/models/robe.rb +1 -1
  50. data/spec/support/v5.0/app/models/school.rb +1 -1
  51. data/spec/support/v5.0/app/models/spell.rb +1 -1
  52. data/spec/support/v5.0/app/models/subject.rb +1 -1
  53. data/spec/support/v5.0/app/models/wizard.rb +5 -0
  54. data/spec/support/v5.0/config/environments/development.rb +1 -1
  55. data/spec/support/v5.0/config/environments/production.rb +1 -1
  56. data/spec/support/v5.0/config/environments/test.rb +1 -1
  57. data/spec/support/v5.0/config/initializers/wrap_parameters.rb +1 -1
  58. data/spec/support/v5.0/config/routes.rb +1 -1
  59. data/spec/support/v5.0/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  60. data/spec/support/v5.0/db/schema.rb +8 -4
  61. data/spec/support/v5.0/sorbet_test_cases.rb +29 -57
  62. data/spec/support/v5.1/Gemfile.lock +13 -12
  63. data/spec/support/v5.1/app/controllers/application_controller.rb +1 -1
  64. data/spec/support/v5.1/app/models/headmaster.rb +1 -1
  65. data/spec/support/v5.1/app/models/school.rb +1 -1
  66. data/spec/support/v5.1/app/models/wizard.rb +5 -0
  67. data/spec/support/v5.1/config/environments/production.rb +1 -1
  68. data/spec/support/v5.1/config/initializers/wrap_parameters.rb +1 -1
  69. data/spec/support/v5.1/config/routes.rb +1 -1
  70. data/spec/support/v5.1/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  71. data/spec/support/v5.1/db/schema.rb +5 -1
  72. data/spec/support/v5.1/sorbet_test_cases.rb +29 -57
  73. data/spec/support/v5.2/Gemfile +1 -1
  74. data/spec/support/v5.2/Gemfile.lock +15 -14
  75. data/spec/support/v5.2/app/models/headmaster.rb +1 -1
  76. data/spec/support/v5.2/app/models/school.rb +1 -1
  77. data/spec/support/v5.2/app/models/wizard.rb +5 -0
  78. data/spec/support/v5.2/config/environments/development.rb +1 -1
  79. data/spec/support/v5.2/config/environments/production.rb +1 -1
  80. data/spec/support/v5.2/config/environments/test.rb +1 -1
  81. data/spec/support/v5.2/config/initializers/wrap_parameters.rb +1 -1
  82. data/spec/support/v5.2/config/routes.rb +1 -1
  83. data/spec/support/v5.2/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  84. data/spec/support/v5.2/db/schema.rb +5 -1
  85. data/spec/support/v5.2/sorbet_test_cases.rb +29 -57
  86. data/spec/support/v6.0/.gitignore +6 -0
  87. data/spec/support/v6.0/Gemfile +3 -3
  88. data/spec/support/v6.0/Gemfile.lock +82 -80
  89. data/spec/support/v6.0/app/models/wizard.rb +5 -0
  90. data/spec/support/v6.0/bin/bundle +22 -13
  91. data/spec/support/v6.0/config/environments/development.rb +1 -1
  92. data/spec/support/v6.0/config/environments/production.rb +1 -1
  93. data/spec/support/v6.0/config/environments/test.rb +2 -2
  94. data/spec/support/v6.0/config/routes.rb +1 -1
  95. data/spec/support/v6.0/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  96. data/spec/support/v6.0/db/schema.rb +5 -1
  97. data/spec/support/v6.0/sorbet_test_cases.rb +29 -57
  98. data/spec/support/v6.0/tmp/pids/.keep +0 -0
  99. data/spec/test_data/v5.0/expected_application_job.rbi +2 -2
  100. data/spec/test_data/v5.0/expected_award_house_point_hourglasses.rbi +2 -2
  101. data/spec/test_data/v5.0/expected_custom_application_job.rbi +21 -0
  102. data/spec/test_data/v5.0/expected_custom_application_mailer.rbi +6 -0
  103. data/spec/test_data/v5.0/expected_custom_award_house_point_hourglasses.rbi +21 -0
  104. data/spec/test_data/v5.0/expected_custom_daily_prophet_mailer.rbi +8 -0
  105. data/spec/test_data/v5.0/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  106. data/spec/test_data/v5.0/expected_headmaster.rbi +26 -2
  107. data/spec/test_data/v5.0/expected_internal_metadata.rbi +2 -2
  108. data/spec/test_data/v5.0/expected_potion.rbi +14 -2
  109. data/spec/test_data/v5.0/expected_robe.rbi +14 -2
  110. data/spec/test_data/v5.0/expected_routes.rbi +4 -0
  111. data/spec/test_data/v5.0/expected_schema_migration.rbi +2 -2
  112. data/spec/test_data/v5.0/expected_school.rbi +14 -2
  113. data/spec/test_data/v5.0/expected_spell.rbi +2 -2
  114. data/spec/test_data/v5.0/expected_spell/habtm_spell_books.rbi +26 -2
  115. data/spec/test_data/v5.0/expected_spell_book.rbi +23 -11
  116. data/spec/test_data/v5.0/expected_spell_book/habtm_spells.rbi +26 -2
  117. data/spec/test_data/v5.0/expected_squib.rbi +65 -2
  118. data/spec/test_data/v5.0/expected_subject.rbi +2 -2
  119. data/spec/test_data/v5.0/expected_subject/habtm_wizards.rbi +26 -2
  120. data/spec/test_data/v5.0/expected_wand.rbi +24 -12
  121. data/spec/test_data/v5.0/expected_wizard.rbi +123 -60
  122. data/spec/test_data/v5.0/expected_wizard/habtm_subjects.rbi +26 -2
  123. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +123 -60
  124. data/spec/test_data/v5.1/expected_application_job.rbi +2 -2
  125. data/spec/test_data/v5.1/expected_award_house_point_hourglasses.rbi +2 -2
  126. data/spec/test_data/v5.1/expected_custom_application_job.rbi +21 -0
  127. data/spec/test_data/v5.1/expected_custom_application_mailer.rbi +6 -0
  128. data/spec/test_data/v5.1/expected_custom_award_house_point_hourglasses.rbi +21 -0
  129. data/spec/test_data/v5.1/expected_custom_daily_prophet_mailer.rbi +8 -0
  130. data/spec/test_data/v5.1/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  131. data/spec/test_data/v5.1/expected_headmaster.rbi +26 -2
  132. data/spec/test_data/v5.1/expected_internal_metadata.rbi +2 -2
  133. data/spec/test_data/v5.1/expected_potion.rbi +14 -2
  134. data/spec/test_data/v5.1/expected_robe.rbi +14 -2
  135. data/spec/test_data/v5.1/expected_routes.rbi +4 -0
  136. data/spec/test_data/v5.1/expected_schema_migration.rbi +2 -2
  137. data/spec/test_data/v5.1/expected_school.rbi +14 -2
  138. data/spec/test_data/v5.1/expected_spell.rbi +2 -2
  139. data/spec/test_data/v5.1/expected_spell/habtm_spell_books.rbi +26 -2
  140. data/spec/test_data/v5.1/expected_spell_book.rbi +23 -11
  141. data/spec/test_data/v5.1/expected_spell_book/habtm_spells.rbi +26 -2
  142. data/spec/test_data/v5.1/expected_squib.rbi +65 -2
  143. data/spec/test_data/v5.1/expected_subject.rbi +2 -2
  144. data/spec/test_data/v5.1/expected_subject/habtm_wizards.rbi +26 -2
  145. data/spec/test_data/v5.1/expected_wand.rbi +24 -12
  146. data/spec/test_data/v5.1/expected_wizard.rbi +123 -60
  147. data/spec/test_data/v5.1/expected_wizard/habtm_subjects.rbi +26 -2
  148. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +123 -60
  149. data/spec/test_data/v5.2/expected_application_job.rbi +2 -2
  150. data/spec/test_data/v5.2/expected_attachment.rbi +26 -2
  151. data/spec/test_data/v5.2/expected_award_house_point_hourglasses.rbi +2 -2
  152. data/spec/test_data/v5.2/expected_blob.rbi +27 -3
  153. data/spec/test_data/v5.2/expected_custom_application_job.rbi +21 -0
  154. data/spec/test_data/v5.2/expected_custom_application_mailer.rbi +6 -0
  155. data/spec/test_data/v5.2/expected_custom_award_house_point_hourglasses.rbi +21 -0
  156. data/spec/test_data/v5.2/expected_custom_daily_prophet_mailer.rbi +8 -0
  157. data/spec/test_data/v5.2/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  158. data/spec/test_data/v5.2/expected_headmaster.rbi +26 -2
  159. data/spec/test_data/v5.2/expected_internal_metadata.rbi +2 -2
  160. data/spec/test_data/v5.2/expected_potion.rbi +14 -2
  161. data/spec/test_data/v5.2/expected_robe.rbi +14 -2
  162. data/spec/test_data/v5.2/expected_routes.rbi +4 -0
  163. data/spec/test_data/v5.2/expected_schema_migration.rbi +2 -2
  164. data/spec/test_data/v5.2/expected_school.rbi +14 -2
  165. data/spec/test_data/v5.2/expected_spell.rbi +2 -2
  166. data/spec/test_data/v5.2/expected_spell/habtm_spell_books.rbi +26 -2
  167. data/spec/test_data/v5.2/expected_spell_book.rbi +23 -11
  168. data/spec/test_data/v5.2/expected_spell_book/habtm_spells.rbi +26 -2
  169. data/spec/test_data/v5.2/expected_squib.rbi +91 -4
  170. data/spec/test_data/v5.2/expected_subject.rbi +2 -2
  171. data/spec/test_data/v5.2/expected_subject/habtm_wizards.rbi +26 -2
  172. data/spec/test_data/v5.2/expected_wand.rbi +24 -12
  173. data/spec/test_data/v5.2/expected_wizard.rbi +149 -62
  174. data/spec/test_data/v5.2/expected_wizard/habtm_subjects.rbi +26 -2
  175. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +149 -62
  176. data/spec/test_data/v6.0/expected_application_job.rbi +2 -2
  177. data/spec/test_data/v6.0/expected_attachment.rbi +26 -2
  178. data/spec/test_data/v6.0/expected_award_house_point_hourglasses.rbi +2 -2
  179. data/spec/test_data/v6.0/expected_blob.rbi +27 -3
  180. data/spec/test_data/v6.0/expected_custom_application_job.rbi +21 -0
  181. data/spec/test_data/v6.0/expected_custom_application_mailer.rbi +6 -0
  182. data/spec/test_data/v6.0/expected_custom_award_house_point_hourglasses.rbi +21 -0
  183. data/spec/test_data/v6.0/expected_custom_daily_prophet_mailer.rbi +8 -0
  184. data/spec/test_data/v6.0/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  185. data/spec/test_data/v6.0/expected_headmaster.rbi +26 -2
  186. data/spec/test_data/v6.0/expected_internal_metadata.rbi +2 -2
  187. data/spec/test_data/v6.0/expected_potion.rbi +14 -2
  188. data/spec/test_data/v6.0/expected_robe.rbi +14 -2
  189. data/spec/test_data/v6.0/expected_routes.rbi +4 -0
  190. data/spec/test_data/v6.0/expected_schema_migration.rbi +2 -2
  191. data/spec/test_data/v6.0/expected_school.rbi +14 -2
  192. data/spec/test_data/v6.0/expected_spell.rbi +2 -2
  193. data/spec/test_data/v6.0/expected_spell/habtm_spell_books.rbi +26 -2
  194. data/spec/test_data/v6.0/expected_spell_book.rbi +23 -11
  195. data/spec/test_data/v6.0/expected_spell_book/habtm_spells.rbi +26 -2
  196. data/spec/test_data/v6.0/expected_squib.rbi +91 -4
  197. data/spec/test_data/v6.0/expected_subject.rbi +2 -2
  198. data/spec/test_data/v6.0/expected_subject/habtm_wizards.rbi +26 -2
  199. data/spec/test_data/v6.0/expected_wand.rbi +24 -12
  200. data/spec/test_data/v6.0/expected_wizard.rbi +149 -62
  201. data/spec/test_data/v6.0/expected_wizard/habtm_subjects.rbi +26 -2
  202. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +149 -62
  203. data/spec/tstruct_comparable.rb +13 -0
  204. metadata +61 -15
  205. data/lib/bundled_rbi/parameters.rbi +0 -28
  206. data/lib/sorbet-rails/custom_types/boolean_string.rb +0 -42
  207. data/lib/sorbet-rails/custom_types/integer_string.rb +0 -45
  208. data/lib/sorbet-rails/rails_mixins/custom_params_methods.rb +0 -57
  209. data/spec/boolean_string_spec.rb +0 -59
  210. data/spec/custom_params_methods_spec.rb +0 -138
  211. data/spec/integer_string_spec.rb +0 -46
@@ -171,7 +171,7 @@ module Spell::QueryMethodsReturningRelation
171
171
  load: T.nilable(T::Boolean),
172
172
  error_on_ignore: T.nilable(T::Boolean),
173
173
  block: T.nilable(T.proc.params(e: Spell::ActiveRecord_Relation).void)
174
- ).returns(T::Enumerable[Spell::ActiveRecord_Relation])
174
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
175
175
  end
176
176
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
177
177
  end
@@ -284,7 +284,7 @@ module Spell::QueryMethodsReturningAssociationRelation
284
284
  load: T.nilable(T::Boolean),
285
285
  error_on_ignore: T.nilable(T::Boolean),
286
286
  block: T.nilable(T.proc.params(e: Spell::ActiveRecord_AssociationRelation).void)
287
- ).returns(T::Enumerable[Spell::ActiveRecord_AssociationRelation])
287
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
288
288
  end
289
289
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
290
290
  end
@@ -31,14 +31,38 @@ module Spell::HABTM_SpellBooks::GeneratedAssociationMethods
31
31
  sig { returns(T.nilable(::Spell)) }
32
32
  def left_side; end
33
33
 
34
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
35
+ def build_left_side(*args, &block); end
36
+
37
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
38
+ def create_left_side(*args, &block); end
39
+
40
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
41
+ def create_left_side!(*args, &block); end
42
+
34
43
  sig { params(value: T.nilable(::Spell)).void }
35
44
  def left_side=(value); end
36
45
 
46
+ sig { returns(T.nilable(::Spell)) }
47
+ def reload_left_side; end
48
+
37
49
  sig { returns(::SpellBook) }
38
50
  def spell_book; end
39
51
 
52
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
53
+ def build_spell_book(*args, &block); end
54
+
55
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
56
+ def create_spell_book(*args, &block); end
57
+
58
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
59
+ def create_spell_book!(*args, &block); end
60
+
40
61
  sig { params(value: ::SpellBook).void }
41
62
  def spell_book=(value); end
63
+
64
+ sig { returns(::SpellBook) }
65
+ def reload_spell_book; end
42
66
  end
43
67
 
44
68
  module Spell::HABTM_SpellBooks::CustomFinderMethods
@@ -174,7 +198,7 @@ module Spell::HABTM_SpellBooks::QueryMethodsReturningRelation
174
198
  load: T.nilable(T::Boolean),
175
199
  error_on_ignore: T.nilable(T::Boolean),
176
200
  block: T.nilable(T.proc.params(e: Spell::HABTM_SpellBooks::ActiveRecord_Relation).void)
177
- ).returns(T::Enumerable[Spell::HABTM_SpellBooks::ActiveRecord_Relation])
201
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
178
202
  end
179
203
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
180
204
  end
@@ -287,7 +311,7 @@ module Spell::HABTM_SpellBooks::QueryMethodsReturningAssociationRelation
287
311
  load: T.nilable(T::Boolean),
288
312
  error_on_ignore: T.nilable(T::Boolean),
289
313
  block: T.nilable(T.proc.params(e: Spell::HABTM_SpellBooks::ActiveRecord_AssociationRelation).void)
290
- ).returns(T::Enumerable[Spell::HABTM_SpellBooks::ActiveRecord_AssociationRelation])
314
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
291
315
  end
292
316
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
293
317
  end
@@ -65,15 +65,6 @@ module SpellBook::GeneratedAttributeMethods
65
65
  def wizard_id?; end
66
66
  end
67
67
 
68
- class SpellBook::BookType < T::Enum
69
- enums do
70
- Unclassified = new(%q{unclassified})
71
- Biology = new(%q{biology})
72
- DarkArt = new(%q{dark_art})
73
- end
74
-
75
- end
76
-
77
68
  module SpellBook::GeneratedAssociationMethods
78
69
  sig { returns(::Spell::ActiveRecord_Associations_CollectionProxy) }
79
70
  def spells; end
@@ -87,8 +78,20 @@ module SpellBook::GeneratedAssociationMethods
87
78
  sig { returns(::Wizard) }
88
79
  def wizard; end
89
80
 
81
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
82
+ def build_wizard(*args, &block); end
83
+
84
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
85
+ def create_wizard(*args, &block); end
86
+
87
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
88
+ def create_wizard!(*args, &block); end
89
+
90
90
  sig { params(value: ::Wizard).void }
91
91
  def wizard=(value); end
92
+
93
+ sig { returns(::Wizard) }
94
+ def reload_wizard; end
92
95
  end
93
96
 
94
97
  module SpellBook::CustomFinderMethods
@@ -145,6 +148,15 @@ class SpellBook < ApplicationRecord
145
148
 
146
149
  sig { params(value: SpellBook::BookType).void }
147
150
  def typed_book_type=(value); end
151
+
152
+ class BookType < T::Enum
153
+ enums do
154
+ Unclassified = new(%q{unclassified})
155
+ Biology = new(%q{biology})
156
+ DarkArt = new(%q{dark_art})
157
+ end
158
+
159
+ end
148
160
  end
149
161
 
150
162
  class SpellBook::ActiveRecord_Relation < ActiveRecord::Relation
@@ -350,7 +362,7 @@ module SpellBook::QueryMethodsReturningRelation
350
362
  load: T.nilable(T::Boolean),
351
363
  error_on_ignore: T.nilable(T::Boolean),
352
364
  block: T.nilable(T.proc.params(e: SpellBook::ActiveRecord_Relation).void)
353
- ).returns(T::Enumerable[SpellBook::ActiveRecord_Relation])
365
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
354
366
  end
355
367
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
356
368
  end
@@ -463,7 +475,7 @@ module SpellBook::QueryMethodsReturningAssociationRelation
463
475
  load: T.nilable(T::Boolean),
464
476
  error_on_ignore: T.nilable(T::Boolean),
465
477
  block: T.nilable(T.proc.params(e: SpellBook::ActiveRecord_AssociationRelation).void)
466
- ).returns(T::Enumerable[SpellBook::ActiveRecord_AssociationRelation])
478
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
467
479
  end
468
480
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
469
481
  end
@@ -31,14 +31,38 @@ module SpellBook::HABTM_Spells::GeneratedAssociationMethods
31
31
  sig { returns(T.nilable(::SpellBook)) }
32
32
  def left_side; end
33
33
 
34
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
35
+ def build_left_side(*args, &block); end
36
+
37
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
38
+ def create_left_side(*args, &block); end
39
+
40
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::SpellBook).void)).returns(::SpellBook) }
41
+ def create_left_side!(*args, &block); end
42
+
34
43
  sig { params(value: T.nilable(::SpellBook)).void }
35
44
  def left_side=(value); end
36
45
 
46
+ sig { returns(T.nilable(::SpellBook)) }
47
+ def reload_left_side; end
48
+
37
49
  sig { returns(::Spell) }
38
50
  def spell; end
39
51
 
52
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
53
+ def build_spell(*args, &block); end
54
+
55
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
56
+ def create_spell(*args, &block); end
57
+
58
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Spell).void)).returns(::Spell) }
59
+ def create_spell!(*args, &block); end
60
+
40
61
  sig { params(value: ::Spell).void }
41
62
  def spell=(value); end
63
+
64
+ sig { returns(::Spell) }
65
+ def reload_spell; end
42
66
  end
43
67
 
44
68
  module SpellBook::HABTM_Spells::CustomFinderMethods
@@ -174,7 +198,7 @@ module SpellBook::HABTM_Spells::QueryMethodsReturningRelation
174
198
  load: T.nilable(T::Boolean),
175
199
  error_on_ignore: T.nilable(T::Boolean),
176
200
  block: T.nilable(T.proc.params(e: SpellBook::HABTM_Spells::ActiveRecord_Relation).void)
177
- ).returns(T::Enumerable[SpellBook::HABTM_Spells::ActiveRecord_Relation])
201
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
178
202
  end
179
203
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
180
204
  end
@@ -287,7 +311,7 @@ module SpellBook::HABTM_Spells::QueryMethodsReturningAssociationRelation
287
311
  load: T.nilable(T::Boolean),
288
312
  error_on_ignore: T.nilable(T::Boolean),
289
313
  block: T.nilable(T.proc.params(e: SpellBook::HABTM_Spells::ActiveRecord_AssociationRelation).void)
290
- ).returns(T::Enumerable[SpellBook::HABTM_Spells::ActiveRecord_AssociationRelation])
314
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
291
315
  end
292
316
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
293
317
  end
@@ -111,6 +111,44 @@ module Squib::ActiveRelation_WhereNot
111
111
  def not(opts, *rest); end
112
112
  end
113
113
 
114
+ module Squib::GeneratedSerializedAttributeMethods
115
+ sig { returns(T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))) }
116
+ def newt_subjects; end
117
+
118
+ sig { params(value: T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))).void }
119
+ def newt_subjects=(value); end
120
+
121
+ sig { returns(T::Boolean) }
122
+ def newt_subjects?; end
123
+
124
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
125
+ def owl_results; end
126
+
127
+ sig { params(value: T.nilable(T::Hash[T.untyped, T.untyped])).void }
128
+ def owl_results=(value); end
129
+
130
+ sig { returns(T::Boolean) }
131
+ def owl_results?; end
132
+
133
+ sig { returns(T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))) }
134
+ def patronus_characteristics; end
135
+
136
+ sig { params(value: T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))).void }
137
+ def patronus_characteristics=(value); end
138
+
139
+ sig { returns(T::Boolean) }
140
+ def patronus_characteristics?; end
141
+
142
+ sig { returns(T.nilable(T::Array[T.untyped])) }
143
+ def pets; end
144
+
145
+ sig { params(value: T.nilable(T::Array[T.untyped])).void }
146
+ def pets=(value); end
147
+
148
+ sig { returns(T::Boolean) }
149
+ def pets?; end
150
+ end
151
+
114
152
  module Squib::GeneratedAttributeMethods
115
153
  sig { returns(T.nilable(String)) }
116
154
  def broom; end
@@ -267,6 +305,7 @@ end
267
305
 
268
306
  class Squib < Wizard
269
307
  include Squib::EnumInstanceMethods
308
+ include Squib::GeneratedSerializedAttributeMethods
270
309
  include Squib::GeneratedAttributeMethods
271
310
  include Squib::GeneratedAssociationMethods
272
311
  extend Squib::CustomFinderMethods
@@ -876,7 +915,7 @@ module Squib::QueryMethodsReturningRelation
876
915
  load: T.nilable(T::Boolean),
877
916
  error_on_ignore: T.nilable(T::Boolean),
878
917
  block: T.nilable(T.proc.params(e: Squib::ActiveRecord_Relation).void)
879
- ).returns(T::Enumerable[Squib::ActiveRecord_Relation])
918
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
880
919
  end
881
920
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
882
921
  end
@@ -989,7 +1028,7 @@ module Squib::QueryMethodsReturningAssociationRelation
989
1028
  load: T.nilable(T::Boolean),
990
1029
  error_on_ignore: T.nilable(T::Boolean),
991
1030
  block: T.nilable(T.proc.params(e: Squib::ActiveRecord_AssociationRelation).void)
992
- ).returns(T::Enumerable[Squib::ActiveRecord_AssociationRelation])
1031
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
993
1032
  end
994
1033
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
995
1034
  end
@@ -998,7 +1037,7 @@ module Squib::GeneratedAssociationMethods
998
1037
  sig { returns(::ActiveStorage::Attachment::ActiveRecord_Associations_CollectionProxy) }
999
1038
  def hats_attachments; end
1000
1039
 
1001
- sig { returns(T::Array[Integer]) }
1040
+ sig { returns(T::Array[T.untyped]) }
1002
1041
  def hats_attachment_ids; end
1003
1042
 
1004
1043
  sig { params(value: T::Enumerable[::ActiveStorage::Attachment]).void }
@@ -1007,7 +1046,7 @@ module Squib::GeneratedAssociationMethods
1007
1046
  sig { returns(::ActiveStorage::Blob::ActiveRecord_Associations_CollectionProxy) }
1008
1047
  def hats_blobs; end
1009
1048
 
1010
- sig { returns(T::Array[Integer]) }
1049
+ sig { returns(T::Array[T.untyped]) }
1011
1050
  def hats_blob_ids; end
1012
1051
 
1013
1052
  sig { params(value: T::Enumerable[::ActiveStorage::Blob]).void }
@@ -1016,21 +1055,57 @@ module Squib::GeneratedAssociationMethods
1016
1055
  sig { returns(T.nilable(::School)) }
1017
1056
  def school; end
1018
1057
 
1058
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::School).void)).returns(::School) }
1059
+ def build_school(*args, &block); end
1060
+
1061
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::School).void)).returns(::School) }
1062
+ def create_school(*args, &block); end
1063
+
1064
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::School).void)).returns(::School) }
1065
+ def create_school!(*args, &block); end
1066
+
1019
1067
  sig { params(value: T.nilable(::School)).void }
1020
1068
  def school=(value); end
1021
1069
 
1070
+ sig { returns(T.nilable(::School)) }
1071
+ def reload_school; end
1072
+
1022
1073
  sig { returns(T.nilable(::ActiveStorage::Attachment)) }
1023
1074
  def school_photo_attachment; end
1024
1075
 
1076
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void)).returns(::ActiveStorage::Attachment) }
1077
+ def build_school_photo_attachment(*args, &block); end
1078
+
1079
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void)).returns(::ActiveStorage::Attachment) }
1080
+ def create_school_photo_attachment(*args, &block); end
1081
+
1082
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void)).returns(::ActiveStorage::Attachment) }
1083
+ def create_school_photo_attachment!(*args, &block); end
1084
+
1025
1085
  sig { params(value: T.nilable(::ActiveStorage::Attachment)).void }
1026
1086
  def school_photo_attachment=(value); end
1027
1087
 
1088
+ sig { returns(T.nilable(::ActiveStorage::Attachment)) }
1089
+ def reload_school_photo_attachment; end
1090
+
1028
1091
  sig { returns(T.nilable(::ActiveStorage::Blob)) }
1029
1092
  def school_photo_blob; end
1030
1093
 
1094
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) }
1095
+ def build_school_photo_blob(*args, &block); end
1096
+
1097
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) }
1098
+ def create_school_photo_blob(*args, &block); end
1099
+
1100
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) }
1101
+ def create_school_photo_blob!(*args, &block); end
1102
+
1031
1103
  sig { params(value: T.nilable(::ActiveStorage::Blob)).void }
1032
1104
  def school_photo_blob=(value); end
1033
1105
 
1106
+ sig { returns(T.nilable(::ActiveStorage::Blob)) }
1107
+ def reload_school_photo_blob; end
1108
+
1034
1109
  sig { returns(::SpellBook::ActiveRecord_Associations_CollectionProxy) }
1035
1110
  def spell_books; end
1036
1111
 
@@ -1052,9 +1127,21 @@ module Squib::GeneratedAssociationMethods
1052
1127
  sig { returns(T.nilable(::Wand)) }
1053
1128
  def wand; end
1054
1129
 
1130
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wand).void)).returns(::Wand) }
1131
+ def build_wand(*args, &block); end
1132
+
1133
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wand).void)).returns(::Wand) }
1134
+ def create_wand(*args, &block); end
1135
+
1136
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wand).void)).returns(::Wand) }
1137
+ def create_wand!(*args, &block); end
1138
+
1055
1139
  sig { params(value: T.nilable(::Wand)).void }
1056
1140
  def wand=(value); end
1057
1141
 
1142
+ sig { returns(T.nilable(::Wand)) }
1143
+ def reload_wand; end
1144
+
1058
1145
  sig { returns(T.nilable(ActiveStorage::Attached::One)) }
1059
1146
  def school_photo; end
1060
1147
 
@@ -171,7 +171,7 @@ module Subject::QueryMethodsReturningRelation
171
171
  load: T.nilable(T::Boolean),
172
172
  error_on_ignore: T.nilable(T::Boolean),
173
173
  block: T.nilable(T.proc.params(e: Subject::ActiveRecord_Relation).void)
174
- ).returns(T::Enumerable[Subject::ActiveRecord_Relation])
174
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
175
175
  end
176
176
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
177
177
  end
@@ -284,7 +284,7 @@ module Subject::QueryMethodsReturningAssociationRelation
284
284
  load: T.nilable(T::Boolean),
285
285
  error_on_ignore: T.nilable(T::Boolean),
286
286
  block: T.nilable(T.proc.params(e: Subject::ActiveRecord_AssociationRelation).void)
287
- ).returns(T::Enumerable[Subject::ActiveRecord_AssociationRelation])
287
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
288
288
  end
289
289
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
290
290
  end
@@ -31,14 +31,38 @@ module Subject::HABTM_Wizards::GeneratedAssociationMethods
31
31
  sig { returns(T.nilable(::Subject)) }
32
32
  def left_side; end
33
33
 
34
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Subject).void)).returns(::Subject) }
35
+ def build_left_side(*args, &block); end
36
+
37
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Subject).void)).returns(::Subject) }
38
+ def create_left_side(*args, &block); end
39
+
40
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Subject).void)).returns(::Subject) }
41
+ def create_left_side!(*args, &block); end
42
+
34
43
  sig { params(value: T.nilable(::Subject)).void }
35
44
  def left_side=(value); end
36
45
 
46
+ sig { returns(T.nilable(::Subject)) }
47
+ def reload_left_side; end
48
+
37
49
  sig { returns(T.nilable(::Wizard)) }
38
50
  def wizard; end
39
51
 
52
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
53
+ def build_wizard(*args, &block); end
54
+
55
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
56
+ def create_wizard(*args, &block); end
57
+
58
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
59
+ def create_wizard!(*args, &block); end
60
+
40
61
  sig { params(value: T.nilable(::Wizard)).void }
41
62
  def wizard=(value); end
63
+
64
+ sig { returns(T.nilable(::Wizard)) }
65
+ def reload_wizard; end
42
66
  end
43
67
 
44
68
  module Subject::HABTM_Wizards::CustomFinderMethods
@@ -174,7 +198,7 @@ module Subject::HABTM_Wizards::QueryMethodsReturningRelation
174
198
  load: T.nilable(T::Boolean),
175
199
  error_on_ignore: T.nilable(T::Boolean),
176
200
  block: T.nilable(T.proc.params(e: Subject::HABTM_Wizards::ActiveRecord_Relation).void)
177
- ).returns(T::Enumerable[Subject::HABTM_Wizards::ActiveRecord_Relation])
201
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
178
202
  end
179
203
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
180
204
  end
@@ -287,7 +311,7 @@ module Subject::HABTM_Wizards::QueryMethodsReturningAssociationRelation
287
311
  load: T.nilable(T::Boolean),
288
312
  error_on_ignore: T.nilable(T::Boolean),
289
313
  block: T.nilable(T.proc.params(e: Subject::HABTM_Wizards::ActiveRecord_AssociationRelation).void)
290
- ).returns(T::Enumerable[Subject::HABTM_Wizards::ActiveRecord_AssociationRelation])
314
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
291
315
  end
292
316
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
293
317
  end
@@ -170,22 +170,24 @@ module Wand::GeneratedAttributeMethods
170
170
  def wood_type?; end
171
171
  end
172
172
 
173
- class Wand::CoreType < T::Enum
174
- enums do
175
- PhoenixFeather = new(%q{phoenix_feather})
176
- DragonHeartstring = new(%q{dragon_heartstring})
177
- UnicornTailHair = new(%q{unicorn_tail_hair})
178
- BasiliskHorn = new(%q{basilisk_horn})
179
- end
180
-
181
- end
182
-
183
173
  module Wand::GeneratedAssociationMethods
184
174
  sig { returns(::Wizard) }
185
175
  def wizard; end
186
176
 
177
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
178
+ def build_wizard(*args, &block); end
179
+
180
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
181
+ def create_wizard(*args, &block); end
182
+
183
+ sig { params(args: T.untyped, block: T.nilable(T.proc.params(object: ::Wizard).void)).returns(::Wizard) }
184
+ def create_wizard!(*args, &block); end
185
+
187
186
  sig { params(value: ::Wizard).void }
188
187
  def wizard=(value); end
188
+
189
+ sig { returns(::Wizard) }
190
+ def reload_wizard; end
189
191
  end
190
192
 
191
193
  module Wand::CustomFinderMethods
@@ -246,6 +248,16 @@ class Wand < ApplicationRecord
246
248
  sig { params(value: T.nilable(Wand::CoreType)).void }
247
249
  def typed_core_type=(value); end
248
250
 
251
+ class CoreType < T::Enum
252
+ enums do
253
+ PhoenixFeather = new(%q{phoenix_feather})
254
+ DragonHeartstring = new(%q{dragon_heartstring})
255
+ UnicornTailHair = new(%q{unicorn_tail_hair})
256
+ BasiliskHorn = new(%q{basilisk_horn})
257
+ end
258
+
259
+ end
260
+
249
261
  sig { returns(T::Array[Wand]) }
250
262
  def self.mythicals; end
251
263
  end
@@ -462,7 +474,7 @@ module Wand::QueryMethodsReturningRelation
462
474
  load: T.nilable(T::Boolean),
463
475
  error_on_ignore: T.nilable(T::Boolean),
464
476
  block: T.nilable(T.proc.params(e: Wand::ActiveRecord_Relation).void)
465
- ).returns(T::Enumerable[Wand::ActiveRecord_Relation])
477
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
466
478
  end
467
479
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
468
480
  end
@@ -575,7 +587,7 @@ module Wand::QueryMethodsReturningAssociationRelation
575
587
  load: T.nilable(T::Boolean),
576
588
  error_on_ignore: T.nilable(T::Boolean),
577
589
  block: T.nilable(T.proc.params(e: Wand::ActiveRecord_AssociationRelation).void)
578
- ).returns(T::Enumerable[Wand::ActiveRecord_AssociationRelation])
590
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
579
591
  end
580
592
  def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
581
593
  end