sorbet-rails 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +48 -17
  4. data/lib/bundled_rbi/parameters.rbi +50 -0
  5. data/lib/sorbet-rails.rb +1 -0
  6. data/lib/sorbet-rails/gem_plugins/friendly_id_plugin.rb +1 -1
  7. data/lib/sorbet-rails/gem_plugins/kaminari_plugin.rb +1 -1
  8. data/lib/sorbet-rails/gem_plugins/pg_search_plugin.rb +1 -1
  9. data/lib/sorbet-rails/mailer_rbi_formatter.rb +2 -2
  10. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +1 -1
  11. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +1 -1
  12. data/lib/sorbet-rails/model_plugins/active_record_enum.rb +1 -1
  13. data/lib/sorbet-rails/model_plugins/active_record_finder_methods.rb +1 -1
  14. data/lib/sorbet-rails/model_plugins/active_record_named_scope.rb +1 -1
  15. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +1 -1
  16. data/lib/sorbet-rails/model_plugins/active_relation_where_not.rb +1 -1
  17. data/lib/sorbet-rails/model_plugins/active_storage_methods.rb +1 -1
  18. data/lib/sorbet-rails/model_plugins/base.rb +1 -1
  19. data/lib/sorbet-rails/model_plugins/custom_finder_methods.rb +1 -1
  20. data/lib/sorbet-rails/model_plugins/enumerable_collections.rb +1 -1
  21. data/lib/sorbet-rails/model_plugins/plugins.rb +0 -1
  22. data/lib/sorbet-rails/model_rbi_formatter.rb +5 -3
  23. data/lib/sorbet-rails/{model_plugins → rails_mixins}/active_record_overrides.rb +0 -0
  24. data/lib/sorbet-rails/{custom_finder_methods.rb → rails_mixins/custom_finder_methods.rb} +1 -1
  25. data/lib/sorbet-rails/rails_mixins/custom_params_methods.rb +46 -0
  26. data/lib/sorbet-rails/railtie.rb +8 -1
  27. data/lib/sorbet-rails/routes_rbi_formatter.rb +1 -2
  28. data/lib/sorbet-rails/tasks/rails_rbi.rake +22 -0
  29. data/lib/sorbet-rails/type_assert/type_assert.rb +18 -0
  30. data/lib/sorbet-rails/type_assert/type_assert_impl.rb +26 -0
  31. data/lib/sorbet-rails/type_assert/type_assert_interface.rb +16 -0
  32. data/sorbet-rails.gemspec +2 -2
  33. data/spec/custom_finder_methods_spec.rb +5 -0
  34. data/spec/custom_params_methods_spec.rb +138 -0
  35. data/spec/generators/sorbet_test_cases.rb +49 -0
  36. data/spec/model_rbi_formatter_spec.rb +10 -3
  37. data/spec/sorbet_spec.rb +1 -5
  38. data/spec/support/v4.2/Gemfile.lock +3 -3
  39. data/spec/support/v4.2/sorbet_test_cases.rb +49 -0
  40. data/spec/support/v5.0/Gemfile.lock +3 -3
  41. data/spec/support/v5.0/sorbet_test_cases.rb +49 -0
  42. data/spec/support/v5.1/Gemfile.lock +3 -3
  43. data/spec/support/v5.1/sorbet_test_cases.rb +49 -0
  44. data/spec/support/v5.2/Gemfile.lock +3 -3
  45. data/spec/support/v5.2/sorbet_test_cases.rb +49 -0
  46. data/spec/support/v6.0/Gemfile.lock +3 -3
  47. data/spec/support/v6.0/sorbet_test_cases.rb +49 -0
  48. data/spec/test_data/v4.2/expected_helpers.rbi +1 -1
  49. data/spec/test_data/v4.2/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  50. data/spec/test_data/v4.2/expected_potion.rbi +3 -3
  51. data/spec/test_data/v4.2/expected_spell_book.rbi +3 -3
  52. data/spec/test_data/v4.2/expected_wand.rbi +3 -3
  53. data/spec/test_data/v4.2/expected_wizard.rbi +3 -3
  54. data/spec/test_data/v4.2/expected_wizard_wo_spellbook.rbi +3 -3
  55. data/spec/test_data/v5.0/expected_helpers.rbi +1 -1
  56. data/spec/test_data/v5.0/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  57. data/spec/test_data/v5.0/expected_internal_metadata.rbi +3 -3
  58. data/spec/test_data/v5.0/expected_potion.rbi +3 -3
  59. data/spec/test_data/v5.0/expected_schema_migration.rbi +3 -3
  60. data/spec/test_data/v5.0/expected_spell_book.rbi +3 -3
  61. data/spec/test_data/v5.0/expected_wand.rbi +3 -3
  62. data/spec/test_data/v5.0/expected_wizard.rbi +3 -3
  63. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +3 -3
  64. data/spec/test_data/v5.1/expected_helpers.rbi +1 -1
  65. data/spec/test_data/v5.1/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  66. data/spec/test_data/v5.1/expected_internal_metadata.rbi +3 -3
  67. data/spec/test_data/v5.1/expected_potion.rbi +3 -3
  68. data/spec/test_data/v5.1/expected_schema_migration.rbi +3 -3
  69. data/spec/test_data/v5.1/expected_spell_book.rbi +3 -3
  70. data/spec/test_data/v5.1/expected_wand.rbi +3 -3
  71. data/spec/test_data/v5.1/expected_wizard.rbi +3 -3
  72. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +3 -3
  73. data/spec/test_data/v5.2/expected_attachment.rbi +3 -3
  74. data/spec/test_data/v5.2/expected_blob.rbi +3 -3
  75. data/spec/test_data/v5.2/expected_helpers.rbi +1 -1
  76. data/spec/test_data/v5.2/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  77. data/spec/test_data/v5.2/expected_internal_metadata.rbi +3 -3
  78. data/spec/test_data/v5.2/expected_potion.rbi +3 -3
  79. data/spec/test_data/v5.2/expected_schema_migration.rbi +3 -3
  80. data/spec/test_data/v5.2/expected_spell_book.rbi +3 -3
  81. data/spec/test_data/v5.2/expected_wand.rbi +3 -3
  82. data/spec/test_data/v5.2/expected_wizard.rbi +3 -3
  83. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +3 -3
  84. data/spec/test_data/v6.0/expected_attachment.rbi +3 -3
  85. data/spec/test_data/v6.0/expected_blob.rbi +3 -3
  86. data/spec/test_data/v6.0/expected_helpers.rbi +1 -1
  87. data/spec/test_data/v6.0/expected_helpers_with_application_and_devise_helpers.rbi +1 -1
  88. data/spec/test_data/v6.0/expected_internal_metadata.rbi +3 -3
  89. data/spec/test_data/v6.0/expected_potion.rbi +3 -3
  90. data/spec/test_data/v6.0/expected_schema_migration.rbi +3 -3
  91. data/spec/test_data/v6.0/expected_spell_book.rbi +3 -3
  92. data/spec/test_data/v6.0/expected_wand.rbi +3 -3
  93. data/spec/test_data/v6.0/expected_wizard.rbi +3 -3
  94. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +3 -3
  95. metadata +12 -33
  96. data/spec/test_data/v5.2-no-sorbet/expected_attachment.rbi +0 -725
  97. data/spec/test_data/v5.2-no-sorbet/expected_blob.rbi +0 -755
  98. data/spec/test_data/v5.2-no-sorbet/expected_helpers.rbi +0 -22
  99. data/spec/test_data/v5.2-no-sorbet/expected_helpers_with_application_and_devise_helpers.rbi +0 -29
  100. data/spec/test_data/v5.2-no-sorbet/expected_internal_metadata.rbi +0 -749
  101. data/spec/test_data/v5.2-no-sorbet/expected_no_routes.rbi +0 -4
  102. data/spec/test_data/v5.2-no-sorbet/expected_potion.rbi +0 -708
  103. data/spec/test_data/v5.2-no-sorbet/expected_routes.rbi +0 -54
  104. data/spec/test_data/v5.2-no-sorbet/expected_schema_migration.rbi +0 -722
  105. data/spec/test_data/v5.2-no-sorbet/expected_spell_book.rbi +0 -822
  106. data/spec/test_data/v5.2-no-sorbet/expected_srb_tc_output.txt +0 -1
  107. data/spec/test_data/v5.2-no-sorbet/expected_wand.rbi +0 -933
  108. data/spec/test_data/v5.2-no-sorbet/expected_wizard.rbi +0 -885
  109. data/spec/test_data/v5.2-no-sorbet/expected_wizard_wo_spellbook.rbi +0 -885
@@ -170,3 +170,52 @@ if ENV["RAILS_VERSION"] != "4.2"
170
170
  T.assert_type!(wizard.brown_hair?, T::Boolean)
171
171
  end
172
172
 
173
+ # -- Custom ActionController::Parameters Methods
174
+ params = ActionController::Parameters.new({
175
+ age: 11,
176
+ name: 'Harry Potter',
177
+ info: {
178
+ birthday: Date.parse('1980-07-31'),
179
+ friends: [
180
+ 'Hermione',
181
+ 'Ron',
182
+ ],
183
+ grandson: nil,
184
+ },
185
+ })
186
+ # -- require_typed
187
+ T.assert_type!(
188
+ params.require_typed(:age, TA[Integer].new),
189
+ Integer,
190
+ )
191
+ T.assert_type!(
192
+ params.require_typed(:name, TA[String].new),
193
+ String,
194
+ )
195
+ info = params.require_typed(:info, TA[ActionController::Parameters].new)
196
+ T.assert_type!(info, ActionController::Parameters)
197
+ T.assert_type!(
198
+ info.require_typed(:friends, TA[T::Array[String]].new),
199
+ T::Array[String],
200
+ )
201
+ # -- fetch_typed
202
+ T.assert_type!(
203
+ params.fetch_typed(:age, TA[Integer].new),
204
+ Integer,
205
+ )
206
+ T.assert_type!(
207
+ params.fetch_typed(:name, TA[String].new),
208
+ String,
209
+ )
210
+ T.assert_type!(
211
+ params.fetch_typed(:nonexistence, TA[String].new, ''),
212
+ String,
213
+ )
214
+ T.assert_type!(
215
+ params.fetch_typed(:nonexistence, TA[T.nilable(String)].new, nil),
216
+ T.nilable(String),
217
+ )
218
+ T.assert_type!(
219
+ params.fetch_typed(:nonexistence, TA[T::Array[Integer]].new, []),
220
+ T::Array[Integer],
221
+ )
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.5.3)
5
- parlour (~> 0.6.0)
4
+ sorbet-rails (0.5.5)
5
+ parlour (~> 0.8.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -68,7 +68,7 @@ GEM
68
68
  nio4r (2.5.1)
69
69
  nokogiri (1.10.4)
70
70
  mini_portile2 (~> 2.4.0)
71
- parlour (0.6.1)
71
+ parlour (0.8.0)
72
72
  rainbow (~> 3.0.0)
73
73
  sorbet-runtime
74
74
  puma (3.12.1)
@@ -170,3 +170,52 @@ if ENV["RAILS_VERSION"] != "4.2"
170
170
  T.assert_type!(wizard.brown_hair?, T::Boolean)
171
171
  end
172
172
 
173
+ # -- Custom ActionController::Parameters Methods
174
+ params = ActionController::Parameters.new({
175
+ age: 11,
176
+ name: 'Harry Potter',
177
+ info: {
178
+ birthday: Date.parse('1980-07-31'),
179
+ friends: [
180
+ 'Hermione',
181
+ 'Ron',
182
+ ],
183
+ grandson: nil,
184
+ },
185
+ })
186
+ # -- require_typed
187
+ T.assert_type!(
188
+ params.require_typed(:age, TA[Integer].new),
189
+ Integer,
190
+ )
191
+ T.assert_type!(
192
+ params.require_typed(:name, TA[String].new),
193
+ String,
194
+ )
195
+ info = params.require_typed(:info, TA[ActionController::Parameters].new)
196
+ T.assert_type!(info, ActionController::Parameters)
197
+ T.assert_type!(
198
+ info.require_typed(:friends, TA[T::Array[String]].new),
199
+ T::Array[String],
200
+ )
201
+ # -- fetch_typed
202
+ T.assert_type!(
203
+ params.fetch_typed(:age, TA[Integer].new),
204
+ Integer,
205
+ )
206
+ T.assert_type!(
207
+ params.fetch_typed(:name, TA[String].new),
208
+ String,
209
+ )
210
+ T.assert_type!(
211
+ params.fetch_typed(:nonexistence, TA[String].new, ''),
212
+ String,
213
+ )
214
+ T.assert_type!(
215
+ params.fetch_typed(:nonexistence, TA[T.nilable(String)].new, nil),
216
+ T.nilable(String),
217
+ )
218
+ T.assert_type!(
219
+ params.fetch_typed(:nonexistence, TA[T::Array[Integer]].new, []),
220
+ T::Array[Integer],
221
+ )
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.5.3)
5
- parlour (~> 0.6.0)
4
+ sorbet-rails (0.5.5)
5
+ parlour (~> 0.8.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -69,7 +69,7 @@ GEM
69
69
  nio4r (2.5.1)
70
70
  nokogiri (1.10.4)
71
71
  mini_portile2 (~> 2.4.0)
72
- parlour (0.6.1)
72
+ parlour (0.8.0)
73
73
  rainbow (~> 3.0.0)
74
74
  sorbet-runtime
75
75
  puma (3.12.1)
@@ -170,3 +170,52 @@ if ENV["RAILS_VERSION"] != "4.2"
170
170
  T.assert_type!(wizard.brown_hair?, T::Boolean)
171
171
  end
172
172
 
173
+ # -- Custom ActionController::Parameters Methods
174
+ params = ActionController::Parameters.new({
175
+ age: 11,
176
+ name: 'Harry Potter',
177
+ info: {
178
+ birthday: Date.parse('1980-07-31'),
179
+ friends: [
180
+ 'Hermione',
181
+ 'Ron',
182
+ ],
183
+ grandson: nil,
184
+ },
185
+ })
186
+ # -- require_typed
187
+ T.assert_type!(
188
+ params.require_typed(:age, TA[Integer].new),
189
+ Integer,
190
+ )
191
+ T.assert_type!(
192
+ params.require_typed(:name, TA[String].new),
193
+ String,
194
+ )
195
+ info = params.require_typed(:info, TA[ActionController::Parameters].new)
196
+ T.assert_type!(info, ActionController::Parameters)
197
+ T.assert_type!(
198
+ info.require_typed(:friends, TA[T::Array[String]].new),
199
+ T::Array[String],
200
+ )
201
+ # -- fetch_typed
202
+ T.assert_type!(
203
+ params.fetch_typed(:age, TA[Integer].new),
204
+ Integer,
205
+ )
206
+ T.assert_type!(
207
+ params.fetch_typed(:name, TA[String].new),
208
+ String,
209
+ )
210
+ T.assert_type!(
211
+ params.fetch_typed(:nonexistence, TA[String].new, ''),
212
+ String,
213
+ )
214
+ T.assert_type!(
215
+ params.fetch_typed(:nonexistence, TA[T.nilable(String)].new, nil),
216
+ T.nilable(String),
217
+ )
218
+ T.assert_type!(
219
+ params.fetch_typed(:nonexistence, TA[T::Array[Integer]].new, []),
220
+ T::Array[Integer],
221
+ )
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.5.3)
5
- parlour (~> 0.6.0)
4
+ sorbet-rails (0.5.5)
5
+ parlour (~> 0.8.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -76,7 +76,7 @@ GEM
76
76
  nio4r (2.5.1)
77
77
  nokogiri (1.10.4)
78
78
  mini_portile2 (~> 2.4.0)
79
- parlour (0.6.1)
79
+ parlour (0.8.0)
80
80
  rainbow (~> 3.0.0)
81
81
  sorbet-runtime
82
82
  puma (3.12.1)
@@ -170,3 +170,52 @@ if ENV["RAILS_VERSION"] != "4.2"
170
170
  T.assert_type!(wizard.brown_hair?, T::Boolean)
171
171
  end
172
172
 
173
+ # -- Custom ActionController::Parameters Methods
174
+ params = ActionController::Parameters.new({
175
+ age: 11,
176
+ name: 'Harry Potter',
177
+ info: {
178
+ birthday: Date.parse('1980-07-31'),
179
+ friends: [
180
+ 'Hermione',
181
+ 'Ron',
182
+ ],
183
+ grandson: nil,
184
+ },
185
+ })
186
+ # -- require_typed
187
+ T.assert_type!(
188
+ params.require_typed(:age, TA[Integer].new),
189
+ Integer,
190
+ )
191
+ T.assert_type!(
192
+ params.require_typed(:name, TA[String].new),
193
+ String,
194
+ )
195
+ info = params.require_typed(:info, TA[ActionController::Parameters].new)
196
+ T.assert_type!(info, ActionController::Parameters)
197
+ T.assert_type!(
198
+ info.require_typed(:friends, TA[T::Array[String]].new),
199
+ T::Array[String],
200
+ )
201
+ # -- fetch_typed
202
+ T.assert_type!(
203
+ params.fetch_typed(:age, TA[Integer].new),
204
+ Integer,
205
+ )
206
+ T.assert_type!(
207
+ params.fetch_typed(:name, TA[String].new),
208
+ String,
209
+ )
210
+ T.assert_type!(
211
+ params.fetch_typed(:nonexistence, TA[String].new, ''),
212
+ String,
213
+ )
214
+ T.assert_type!(
215
+ params.fetch_typed(:nonexistence, TA[T.nilable(String)].new, nil),
216
+ T.nilable(String),
217
+ )
218
+ T.assert_type!(
219
+ params.fetch_typed(:nonexistence, TA[T::Array[Integer]].new, []),
220
+ T::Array[Integer],
221
+ )
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- sorbet-rails (0.5.3)
5
- parlour (~> 0.6.0)
4
+ sorbet-rails (0.5.5)
5
+ parlour (~> 0.8.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
@@ -89,7 +89,7 @@ GEM
89
89
  nio4r (2.5.1)
90
90
  nokogiri (1.10.4)
91
91
  mini_portile2 (~> 2.4.0)
92
- parlour (0.6.1)
92
+ parlour (0.8.0)
93
93
  rainbow (~> 3.0.0)
94
94
  sorbet-runtime
95
95
  puma (3.12.1)
@@ -170,3 +170,52 @@ if ENV["RAILS_VERSION"] != "4.2"
170
170
  T.assert_type!(wizard.brown_hair?, T::Boolean)
171
171
  end
172
172
 
173
+ # -- Custom ActionController::Parameters Methods
174
+ params = ActionController::Parameters.new({
175
+ age: 11,
176
+ name: 'Harry Potter',
177
+ info: {
178
+ birthday: Date.parse('1980-07-31'),
179
+ friends: [
180
+ 'Hermione',
181
+ 'Ron',
182
+ ],
183
+ grandson: nil,
184
+ },
185
+ })
186
+ # -- require_typed
187
+ T.assert_type!(
188
+ params.require_typed(:age, TA[Integer].new),
189
+ Integer,
190
+ )
191
+ T.assert_type!(
192
+ params.require_typed(:name, TA[String].new),
193
+ String,
194
+ )
195
+ info = params.require_typed(:info, TA[ActionController::Parameters].new)
196
+ T.assert_type!(info, ActionController::Parameters)
197
+ T.assert_type!(
198
+ info.require_typed(:friends, TA[T::Array[String]].new),
199
+ T::Array[String],
200
+ )
201
+ # -- fetch_typed
202
+ T.assert_type!(
203
+ params.fetch_typed(:age, TA[Integer].new),
204
+ Integer,
205
+ )
206
+ T.assert_type!(
207
+ params.fetch_typed(:name, TA[String].new),
208
+ String,
209
+ )
210
+ T.assert_type!(
211
+ params.fetch_typed(:nonexistence, TA[String].new, ''),
212
+ String,
213
+ )
214
+ T.assert_type!(
215
+ params.fetch_typed(:nonexistence, TA[T.nilable(String)].new, nil),
216
+ T.nilable(String),
217
+ )
218
+ T.assert_type!(
219
+ params.fetch_typed(:nonexistence, TA[T::Array[Integer]].new, []),
220
+ T::Array[Integer],
221
+ )
@@ -19,4 +19,4 @@ end
19
19
  module FooHelper
20
20
  include Kernel
21
21
  include ActionView::Helpers
22
- end
22
+ end
@@ -26,4 +26,4 @@ module FooHelper
26
26
  include ActionView::Helpers
27
27
  include ApplicationHelper
28
28
  include DeviseHelper
29
- end
29
+ end
@@ -302,7 +302,7 @@ class Potion::ActiveRecord_Relation < ActiveRecord::Relation
302
302
  sig { params(args: T.untyped).returns(T::Boolean) }
303
303
  def one?(*args); end
304
304
 
305
- sig { implementation.params(block: T.proc.params(e: Potion).void).void }
305
+ sig { override.params(block: T.proc.params(e: Potion).void).void }
306
306
  def each(&block); end
307
307
 
308
308
  sig { params(level: T.nilable(Integer)).returns(T::Array[Potion]) }
@@ -460,7 +460,7 @@ class Potion::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
460
460
  sig { params(args: T.untyped).returns(T::Boolean) }
461
461
  def one?(*args); end
462
462
 
463
- sig { implementation.params(block: T.proc.params(e: Potion).void).void }
463
+ sig { override.params(block: T.proc.params(e: Potion).void).void }
464
464
  def each(&block); end
465
465
 
466
466
  sig { params(level: T.nilable(Integer)).returns(T::Array[Potion]) }
@@ -617,7 +617,7 @@ class Potion::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
617
617
  sig { params(args: T.untyped).returns(T::Boolean) }
618
618
  def one?(*args); end
619
619
 
620
- sig { implementation.params(block: T.proc.params(e: Potion).void).void }
620
+ sig { override.params(block: T.proc.params(e: Potion).void).void }
621
621
  def each(&block); end
622
622
 
623
623
  sig { params(level: T.nilable(Integer)).returns(T::Array[Potion]) }
@@ -398,7 +398,7 @@ class SpellBook::ActiveRecord_Relation < ActiveRecord::Relation
398
398
  sig { params(args: T.untyped).returns(T::Boolean) }
399
399
  def one?(*args); end
400
400
 
401
- sig { implementation.params(block: T.proc.params(e: SpellBook).void).void }
401
+ sig { override.params(block: T.proc.params(e: SpellBook).void).void }
402
402
  def each(&block); end
403
403
 
404
404
  sig { params(level: T.nilable(Integer)).returns(T::Array[SpellBook]) }
@@ -565,7 +565,7 @@ class SpellBook::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRel
565
565
  sig { params(args: T.untyped).returns(T::Boolean) }
566
566
  def one?(*args); end
567
567
 
568
- sig { implementation.params(block: T.proc.params(e: SpellBook).void).void }
568
+ sig { override.params(block: T.proc.params(e: SpellBook).void).void }
569
569
  def each(&block); end
570
570
 
571
571
  sig { params(level: T.nilable(Integer)).returns(T::Array[SpellBook]) }
@@ -731,7 +731,7 @@ class SpellBook::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Assoc
731
731
  sig { params(args: T.untyped).returns(T::Boolean) }
732
732
  def one?(*args); end
733
733
 
734
- sig { implementation.params(block: T.proc.params(e: SpellBook).void).void }
734
+ sig { override.params(block: T.proc.params(e: SpellBook).void).void }
735
735
  def each(&block); end
736
736
 
737
737
  sig { params(level: T.nilable(Integer)).returns(T::Array[SpellBook]) }
@@ -485,7 +485,7 @@ class Wand::ActiveRecord_Relation < ActiveRecord::Relation
485
485
  sig { params(args: T.untyped).returns(T::Boolean) }
486
486
  def one?(*args); end
487
487
 
488
- sig { implementation.params(block: T.proc.params(e: Wand).void).void }
488
+ sig { override.params(block: T.proc.params(e: Wand).void).void }
489
489
  def each(&block); end
490
490
 
491
491
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wand]) }
@@ -655,7 +655,7 @@ class Wand::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
655
655
  sig { params(args: T.untyped).returns(T::Boolean) }
656
656
  def one?(*args); end
657
657
 
658
- sig { implementation.params(block: T.proc.params(e: Wand).void).void }
658
+ sig { override.params(block: T.proc.params(e: Wand).void).void }
659
659
  def each(&block); end
660
660
 
661
661
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wand]) }
@@ -824,7 +824,7 @@ class Wand::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associatio
824
824
  sig { params(args: T.untyped).returns(T::Boolean) }
825
825
  def one?(*args); end
826
826
 
827
- sig { implementation.params(block: T.proc.params(e: Wand).void).void }
827
+ sig { override.params(block: T.proc.params(e: Wand).void).void }
828
828
  def each(&block); end
829
829
 
830
830
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wand]) }
@@ -500,7 +500,7 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
500
500
  sig { params(args: T.untyped).returns(T::Boolean) }
501
501
  def one?(*args); end
502
502
 
503
- sig { implementation.params(block: T.proc.params(e: Wizard).void).void }
503
+ sig { override.params(block: T.proc.params(e: Wizard).void).void }
504
504
  def each(&block); end
505
505
 
506
506
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard]) }
@@ -682,7 +682,7 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
682
682
  sig { params(args: T.untyped).returns(T::Boolean) }
683
683
  def one?(*args); end
684
684
 
685
- sig { implementation.params(block: T.proc.params(e: Wizard).void).void }
685
+ sig { override.params(block: T.proc.params(e: Wizard).void).void }
686
686
  def each(&block); end
687
687
 
688
688
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard]) }
@@ -863,7 +863,7 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
863
863
  sig { params(args: T.untyped).returns(T::Boolean) }
864
864
  def one?(*args); end
865
865
 
866
- sig { implementation.params(block: T.proc.params(e: Wizard).void).void }
866
+ sig { override.params(block: T.proc.params(e: Wizard).void).void }
867
867
  def each(&block); end
868
868
 
869
869
  sig { params(level: T.nilable(Integer)).returns(T::Array[Wizard]) }