sorbet-rails 0.5.9.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +4 -0
  3. data/.travis.yml +3 -3
  4. data/README.md +129 -52
  5. data/lib/bundled_rbi/active_record_base.rbi +83 -0
  6. data/lib/bundled_rbi/active_record_relation.rbi +43 -0
  7. data/lib/bundled_rbi/pluck_to_tstruct.rbi +0 -1
  8. data/lib/bundled_rbi/typed_params.rbi +9 -0
  9. data/lib/sorbet-rails.rb +1 -0
  10. data/lib/sorbet-rails/config.rb +0 -1
  11. data/lib/sorbet-rails/gem_plugins/elastic_search_plugin.rb +1 -1
  12. data/lib/sorbet-rails/gem_plugins/friendly_id_plugin.rb +1 -1
  13. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +3 -3
  14. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +85 -17
  15. data/lib/sorbet-rails/model_plugins/active_record_enum.rb +0 -2
  16. data/lib/sorbet-rails/model_plugins/active_record_finder_methods.rb +49 -12
  17. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +1 -1
  18. data/lib/sorbet-rails/model_plugins/active_storage_methods.rb +1 -1
  19. data/lib/sorbet-rails/model_plugins/plugins.rb +0 -3
  20. data/lib/sorbet-rails/rails_mixins/active_record_overrides.rb +156 -5
  21. data/lib/sorbet-rails/rails_mixins/generated_url_helpers.rb +16 -0
  22. data/lib/sorbet-rails/railtie.rb +2 -1
  23. data/lib/sorbet-rails/tasks/rails_rbi.rake +2 -0
  24. data/lib/sorbet-rails/type_assert/actionpack.rbi +4 -0
  25. data/lib/sorbet-rails/type_assert/type_assert.rb +1 -1
  26. data/lib/sorbet-rails/typed_params.rb +22 -0
  27. data/lib/sorbet-rails/utils.rb +5 -0
  28. data/sorbet-rails.gemspec +5 -3
  29. data/spec/generators/rails-template.rb +7 -3
  30. data/spec/generators/sorbet_test_cases.rb +46 -1
  31. data/spec/sorbet_spec.rb +3 -1
  32. data/spec/support/v5.0/Gemfile.lock +36 -23
  33. data/spec/support/v5.0/app/models/wizard.rb +6 -3
  34. data/spec/support/v5.0/db/migrate/20190620000001_create_wizards.rb +1 -0
  35. data/spec/support/v5.0/db/schema.rb +1 -0
  36. data/spec/support/v5.0/sorbet_test_cases.rb +46 -1
  37. data/spec/support/v5.1/Gemfile.lock +37 -24
  38. data/spec/support/v5.1/app/models/wizard.rb +6 -3
  39. data/spec/support/v5.1/db/migrate/20190620000001_create_wizards.rb +1 -0
  40. data/spec/support/v5.1/db/schema.rb +1 -0
  41. data/spec/support/v5.1/sorbet_test_cases.rb +46 -1
  42. data/spec/support/v5.2/Gemfile.lock +75 -62
  43. data/spec/support/v5.2/app/models/wizard.rb +6 -3
  44. data/spec/support/v5.2/db/migrate/20190620000001_create_wizards.rb +1 -0
  45. data/spec/support/v5.2/db/schema.rb +1 -0
  46. data/spec/support/v5.2/sorbet_test_cases.rb +46 -1
  47. data/spec/support/v6.0/Gemfile.lock +89 -76
  48. data/spec/support/v6.0/app/models/wizard.rb +6 -3
  49. data/spec/support/v6.0/db/migrate/20190620000001_create_wizards.rb +1 -0
  50. data/spec/support/v6.0/db/schema.rb +1 -0
  51. data/spec/support/v6.0/sorbet_test_cases.rb +46 -1
  52. data/spec/test_data/v5.0/expected_internal_metadata.rbi +33 -54
  53. data/spec/test_data/v5.0/expected_potion.rbi +33 -54
  54. data/spec/test_data/v5.0/expected_robe.rbi +33 -54
  55. data/spec/test_data/v5.0/expected_schema_migration.rbi +33 -54
  56. data/spec/test_data/v5.0/expected_school.rbi +33 -54
  57. data/spec/test_data/v5.0/expected_spell_book.rbi +46 -52
  58. data/spec/test_data/v5.0/expected_squib.rbi +42 -54
  59. data/spec/test_data/v5.0/expected_wand.rbi +47 -52
  60. data/spec/test_data/v5.0/expected_wizard.rbi +119 -56
  61. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +119 -56
  62. data/spec/test_data/v5.1/expected_internal_metadata.rbi +33 -54
  63. data/spec/test_data/v5.1/expected_potion.rbi +33 -54
  64. data/spec/test_data/v5.1/expected_robe.rbi +33 -54
  65. data/spec/test_data/v5.1/expected_schema_migration.rbi +33 -54
  66. data/spec/test_data/v5.1/expected_school.rbi +33 -54
  67. data/spec/test_data/v5.1/expected_spell_book.rbi +46 -52
  68. data/spec/test_data/v5.1/expected_squib.rbi +42 -54
  69. data/spec/test_data/v5.1/expected_wand.rbi +47 -52
  70. data/spec/test_data/v5.1/expected_wizard.rbi +119 -56
  71. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +119 -56
  72. data/spec/test_data/v5.2/expected_attachment.rbi +33 -54
  73. data/spec/test_data/v5.2/expected_blob.rbi +33 -54
  74. data/spec/test_data/v5.2/expected_internal_metadata.rbi +33 -54
  75. data/spec/test_data/v5.2/expected_potion.rbi +33 -54
  76. data/spec/test_data/v5.2/expected_robe.rbi +33 -54
  77. data/spec/test_data/v5.2/expected_schema_migration.rbi +33 -54
  78. data/spec/test_data/v5.2/expected_school.rbi +33 -54
  79. data/spec/test_data/v5.2/expected_spell_book.rbi +46 -52
  80. data/spec/test_data/v5.2/expected_squib.rbi +42 -54
  81. data/spec/test_data/v5.2/expected_wand.rbi +47 -52
  82. data/spec/test_data/v5.2/expected_wizard.rbi +119 -56
  83. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +119 -56
  84. data/spec/test_data/v6.0/expected_attachment.rbi +33 -54
  85. data/spec/test_data/v6.0/expected_blob.rbi +33 -54
  86. data/spec/test_data/v6.0/expected_internal_metadata.rbi +33 -54
  87. data/spec/test_data/v6.0/expected_potion.rbi +33 -54
  88. data/spec/test_data/v6.0/expected_robe.rbi +33 -54
  89. data/spec/test_data/v6.0/expected_schema_migration.rbi +33 -54
  90. data/spec/test_data/v6.0/expected_school.rbi +33 -54
  91. data/spec/test_data/v6.0/expected_spell_book.rbi +46 -52
  92. data/spec/test_data/v6.0/expected_squib.rbi +42 -54
  93. data/spec/test_data/v6.0/expected_wand.rbi +47 -52
  94. data/spec/test_data/v6.0/expected_wizard.rbi +119 -56
  95. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +119 -56
  96. data/spec/typed_enum_spec.rb +55 -0
  97. data/spec/typed_params_spec.rb +91 -0
  98. metadata +41 -4
  99. data/lib/sorbet-rails/model_plugins/active_record_factory_methods.rb +0 -28
@@ -116,12 +116,6 @@ end
116
116
  module Wizard::GeneratedAttributeMethods
117
117
  extend T::Sig
118
118
 
119
- sig { returns(T.nilable(String)) }
120
- def broom; end
121
-
122
- sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
123
- def broom=(value); end
124
-
125
119
  sig { returns(T::Boolean) }
126
120
  def broom?; end
127
121
 
@@ -161,12 +155,6 @@ module Wizard::GeneratedAttributeMethods
161
155
  sig { returns(T::Boolean) }
162
156
  def hair_length?; end
163
157
 
164
- sig { returns(T.nilable(String)) }
165
- def house; end
166
-
167
- sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
168
- def house=(value); end
169
-
170
158
  sig { returns(T::Boolean) }
171
159
  def house?; end
172
160
 
@@ -207,10 +195,13 @@ module Wizard::GeneratedAttributeMethods
207
195
  def parent_email?; end
208
196
 
209
197
  sig { returns(T.nilable(String)) }
210
- def quidditch_position; end
198
+ def professor; end
211
199
 
212
200
  sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
213
- def quidditch_position=(value); end
201
+ def professor=(value); end
202
+
203
+ sig { returns(T::Boolean) }
204
+ def professor?; end
214
205
 
215
206
  sig { returns(T::Boolean) }
216
207
  def quidditch_position?; end
@@ -243,6 +234,63 @@ module Wizard::GeneratedAttributeMethods
243
234
  def updated_at?; end
244
235
  end
245
236
 
237
+ class Wizard::Broom < T::Enum
238
+ enums do
239
+ Nimbus = new('nimbus')
240
+ Firebolt = new('firebolt')
241
+ end
242
+
243
+ end
244
+
245
+ class Wizard::EyeColor < T::Enum
246
+ enums do
247
+ Brown = new('brown')
248
+ Green = new('green')
249
+ Blue = new('blue')
250
+ end
251
+
252
+ end
253
+
254
+ class Wizard::HairColor < T::Enum
255
+ enums do
256
+ Brown = new('brown')
257
+ Black = new('black')
258
+ Blonde = new('blonde')
259
+ end
260
+
261
+ end
262
+
263
+ class Wizard::House < T::Enum
264
+ enums do
265
+ Gryffindor = new('Gryffindor')
266
+ Hufflepuff = new('Hufflepuff')
267
+ Ravenclaw = new('Ravenclaw')
268
+ Slytherin = new('Slytherin')
269
+ end
270
+
271
+ end
272
+
273
+ class Wizard::ProfessorEnum < T::Enum
274
+ enums do
275
+ SeverusSnape = new('Severus Snape')
276
+ MinervaMcGonagall = new('Minerva McGonagall')
277
+ PomonaSprout = new('Pomona Sprout')
278
+ FiliusFlitwick = new('Filius Flitwick')
279
+ Hagrid = new('Hagrid')
280
+ end
281
+
282
+ end
283
+
284
+ class Wizard::QuidditchPosition < T::Enum
285
+ enums do
286
+ Keeper = new('keeper')
287
+ Seeker = new('seeker')
288
+ Beater = new('beater')
289
+ Chaser = new('chaser')
290
+ end
291
+
292
+ end
293
+
246
294
  module Wizard::CustomFinderMethods
247
295
  sig { params(limit: Integer).returns(T::Array[Wizard]) }
248
296
  def first_n(limit); end
@@ -496,50 +544,41 @@ class Wizard < ApplicationRecord
496
544
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
497
545
  def self.extending(*args, &block); end
498
546
 
499
- sig { params(args: T.untyped).returns(Wizard) }
500
- def self.find(*args); end
501
-
502
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
503
- def self.find_by(*args); end
504
-
505
- sig { params(args: T.untyped).returns(Wizard) }
506
- def self.find_by!(*args); end
547
+ sig { returns(T.nilable(Wizard::Broom)) }
548
+ def typed_broom; end
507
549
 
508
- sig { returns(T.nilable(Wizard)) }
509
- def self.first; end
550
+ sig { params(value: T.nilable(Wizard::Broom)).void }
551
+ def typed_broom=(value); end
510
552
 
511
- sig { returns(Wizard) }
512
- def self.first!; end
553
+ sig { returns(T.nilable(Wizard::EyeColor)) }
554
+ def typed_eye_color; end
513
555
 
514
- sig { returns(T.nilable(Wizard)) }
515
- def self.second; end
556
+ sig { params(value: T.nilable(Wizard::EyeColor)).void }
557
+ def typed_eye_color=(value); end
516
558
 
517
- sig { returns(Wizard) }
518
- def self.second!; end
559
+ sig { returns(T.nilable(Wizard::HairColor)) }
560
+ def typed_hair_color; end
519
561
 
520
- sig { returns(T.nilable(Wizard)) }
521
- def self.third; end
562
+ sig { params(value: T.nilable(Wizard::HairColor)).void }
563
+ def typed_hair_color=(value); end
522
564
 
523
- sig { returns(Wizard) }
524
- def self.third!; end
565
+ sig { returns(T.nilable(Wizard::House)) }
566
+ def typed_house; end
525
567
 
526
- sig { returns(T.nilable(Wizard)) }
527
- def self.third_to_last; end
568
+ sig { params(value: T.nilable(Wizard::House)).void }
569
+ def typed_house=(value); end
528
570
 
529
- sig { returns(Wizard) }
530
- def self.third_to_last!; end
571
+ sig { returns(T.nilable(Wizard::ProfessorEnum)) }
572
+ def typed_professor; end
531
573
 
532
- sig { returns(T.nilable(Wizard)) }
533
- def self.second_to_last; end
574
+ sig { params(value: T.nilable(Wizard::ProfessorEnum)).void }
575
+ def typed_professor=(value); end
534
576
 
535
- sig { returns(Wizard) }
536
- def self.second_to_last!; end
577
+ sig { returns(T.nilable(Wizard::QuidditchPosition)) }
578
+ def typed_quidditch_position; end
537
579
 
538
- sig { returns(T.nilable(Wizard)) }
539
- def self.last; end
540
-
541
- sig { returns(Wizard) }
542
- def self.last!; end
580
+ sig { params(value: T.nilable(Wizard::QuidditchPosition)).void }
581
+ def typed_quidditch_position=(value); end
543
582
 
544
583
  sig { params(conditions: T.untyped).returns(T::Boolean) }
545
584
  def self.exists?(conditions = nil); end
@@ -555,15 +594,6 @@ class Wizard < ApplicationRecord
555
594
 
556
595
  sig { params(args: T.untyped).returns(T::Boolean) }
557
596
  def self.one?(*args); end
558
-
559
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
560
- def self.create(attributes = nil, &block); end
561
-
562
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
563
- def self.create!(attributes = nil, &block); end
564
-
565
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
566
- def self.new(attributes = nil, &block); end
567
597
  end
568
598
 
569
599
  class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
@@ -783,6 +813,21 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
783
813
 
784
814
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
785
815
  def extending(*args, &block); end
816
+
817
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
818
+ def exists?(conditions = nil); end
819
+
820
+ sig { params(args: T.untyped).returns(T::Boolean) }
821
+ def any?(*args); end
822
+
823
+ sig { params(args: T.untyped).returns(T::Boolean) }
824
+ def many?(*args); end
825
+
826
+ sig { params(args: T.untyped).returns(T::Boolean) }
827
+ def none?(*args); end
828
+
829
+ sig { params(args: T.untyped).returns(T::Boolean) }
830
+ def one?(*args); end
786
831
  end
787
832
 
788
833
  class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
@@ -1012,6 +1057,15 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
1012
1057
  sig { params(args: T.untyped).returns(Wizard) }
1013
1058
  def find_by!(*args); end
1014
1059
 
1060
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1061
+ def find_or_initialize_by(attributes, &block); end
1062
+
1063
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1064
+ def find_or_create_by(attributes, &block); end
1065
+
1066
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1067
+ def find_or_create_by!(attributes, &block); end
1068
+
1015
1069
  sig { returns(T.nilable(Wizard)) }
1016
1070
  def first; end
1017
1071
 
@@ -1307,6 +1361,15 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
1307
1361
  sig { params(args: T.untyped).returns(Wizard) }
1308
1362
  def find_by!(*args); end
1309
1363
 
1364
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1365
+ def find_or_initialize_by(attributes, &block); end
1366
+
1367
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1368
+ def find_or_create_by(attributes, &block); end
1369
+
1370
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1371
+ def find_or_create_by!(attributes, &block); end
1372
+
1310
1373
  sig { returns(T.nilable(Wizard)) }
1311
1374
  def first; end
1312
1375
 
@@ -116,12 +116,6 @@ end
116
116
  module Wizard::GeneratedAttributeMethods
117
117
  extend T::Sig
118
118
 
119
- sig { returns(T.nilable(String)) }
120
- def broom; end
121
-
122
- sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
123
- def broom=(value); end
124
-
125
119
  sig { returns(T::Boolean) }
126
120
  def broom?; end
127
121
 
@@ -161,12 +155,6 @@ module Wizard::GeneratedAttributeMethods
161
155
  sig { returns(T::Boolean) }
162
156
  def hair_length?; end
163
157
 
164
- sig { returns(T.nilable(String)) }
165
- def house; end
166
-
167
- sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
168
- def house=(value); end
169
-
170
158
  sig { returns(T::Boolean) }
171
159
  def house?; end
172
160
 
@@ -207,10 +195,13 @@ module Wizard::GeneratedAttributeMethods
207
195
  def parent_email?; end
208
196
 
209
197
  sig { returns(T.nilable(String)) }
210
- def quidditch_position; end
198
+ def professor; end
211
199
 
212
200
  sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
213
- def quidditch_position=(value); end
201
+ def professor=(value); end
202
+
203
+ sig { returns(T::Boolean) }
204
+ def professor?; end
214
205
 
215
206
  sig { returns(T::Boolean) }
216
207
  def quidditch_position?; end
@@ -243,6 +234,63 @@ module Wizard::GeneratedAttributeMethods
243
234
  def updated_at?; end
244
235
  end
245
236
 
237
+ class Wizard::Broom < T::Enum
238
+ enums do
239
+ Nimbus = new('nimbus')
240
+ Firebolt = new('firebolt')
241
+ end
242
+
243
+ end
244
+
245
+ class Wizard::EyeColor < T::Enum
246
+ enums do
247
+ Brown = new('brown')
248
+ Green = new('green')
249
+ Blue = new('blue')
250
+ end
251
+
252
+ end
253
+
254
+ class Wizard::HairColor < T::Enum
255
+ enums do
256
+ Brown = new('brown')
257
+ Black = new('black')
258
+ Blonde = new('blonde')
259
+ end
260
+
261
+ end
262
+
263
+ class Wizard::House < T::Enum
264
+ enums do
265
+ Gryffindor = new('Gryffindor')
266
+ Hufflepuff = new('Hufflepuff')
267
+ Ravenclaw = new('Ravenclaw')
268
+ Slytherin = new('Slytherin')
269
+ end
270
+
271
+ end
272
+
273
+ class Wizard::ProfessorEnum < T::Enum
274
+ enums do
275
+ SeverusSnape = new('Severus Snape')
276
+ MinervaMcGonagall = new('Minerva McGonagall')
277
+ PomonaSprout = new('Pomona Sprout')
278
+ FiliusFlitwick = new('Filius Flitwick')
279
+ Hagrid = new('Hagrid')
280
+ end
281
+
282
+ end
283
+
284
+ class Wizard::QuidditchPosition < T::Enum
285
+ enums do
286
+ Keeper = new('keeper')
287
+ Seeker = new('seeker')
288
+ Beater = new('beater')
289
+ Chaser = new('chaser')
290
+ end
291
+
292
+ end
293
+
246
294
  module Wizard::CustomFinderMethods
247
295
  sig { params(limit: Integer).returns(T::Array[Wizard]) }
248
296
  def first_n(limit); end
@@ -496,50 +544,41 @@ class Wizard < ApplicationRecord
496
544
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
497
545
  def self.extending(*args, &block); end
498
546
 
499
- sig { params(args: T.untyped).returns(Wizard) }
500
- def self.find(*args); end
501
-
502
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
503
- def self.find_by(*args); end
504
-
505
- sig { params(args: T.untyped).returns(Wizard) }
506
- def self.find_by!(*args); end
547
+ sig { returns(T.nilable(Wizard::Broom)) }
548
+ def typed_broom; end
507
549
 
508
- sig { returns(T.nilable(Wizard)) }
509
- def self.first; end
550
+ sig { params(value: T.nilable(Wizard::Broom)).void }
551
+ def typed_broom=(value); end
510
552
 
511
- sig { returns(Wizard) }
512
- def self.first!; end
553
+ sig { returns(T.nilable(Wizard::EyeColor)) }
554
+ def typed_eye_color; end
513
555
 
514
- sig { returns(T.nilable(Wizard)) }
515
- def self.second; end
556
+ sig { params(value: T.nilable(Wizard::EyeColor)).void }
557
+ def typed_eye_color=(value); end
516
558
 
517
- sig { returns(Wizard) }
518
- def self.second!; end
559
+ sig { returns(T.nilable(Wizard::HairColor)) }
560
+ def typed_hair_color; end
519
561
 
520
- sig { returns(T.nilable(Wizard)) }
521
- def self.third; end
562
+ sig { params(value: T.nilable(Wizard::HairColor)).void }
563
+ def typed_hair_color=(value); end
522
564
 
523
- sig { returns(Wizard) }
524
- def self.third!; end
565
+ sig { returns(T.nilable(Wizard::House)) }
566
+ def typed_house; end
525
567
 
526
- sig { returns(T.nilable(Wizard)) }
527
- def self.third_to_last; end
568
+ sig { params(value: T.nilable(Wizard::House)).void }
569
+ def typed_house=(value); end
528
570
 
529
- sig { returns(Wizard) }
530
- def self.third_to_last!; end
571
+ sig { returns(T.nilable(Wizard::ProfessorEnum)) }
572
+ def typed_professor; end
531
573
 
532
- sig { returns(T.nilable(Wizard)) }
533
- def self.second_to_last; end
574
+ sig { params(value: T.nilable(Wizard::ProfessorEnum)).void }
575
+ def typed_professor=(value); end
534
576
 
535
- sig { returns(Wizard) }
536
- def self.second_to_last!; end
577
+ sig { returns(T.nilable(Wizard::QuidditchPosition)) }
578
+ def typed_quidditch_position; end
537
579
 
538
- sig { returns(T.nilable(Wizard)) }
539
- def self.last; end
540
-
541
- sig { returns(Wizard) }
542
- def self.last!; end
580
+ sig { params(value: T.nilable(Wizard::QuidditchPosition)).void }
581
+ def typed_quidditch_position=(value); end
543
582
 
544
583
  sig { params(conditions: T.untyped).returns(T::Boolean) }
545
584
  def self.exists?(conditions = nil); end
@@ -555,15 +594,6 @@ class Wizard < ApplicationRecord
555
594
 
556
595
  sig { params(args: T.untyped).returns(T::Boolean) }
557
596
  def self.one?(*args); end
558
-
559
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
560
- def self.create(attributes = nil, &block); end
561
-
562
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
563
- def self.create!(attributes = nil, &block); end
564
-
565
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
566
- def self.new(attributes = nil, &block); end
567
597
  end
568
598
 
569
599
  class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
@@ -783,6 +813,21 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
783
813
 
784
814
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
785
815
  def extending(*args, &block); end
816
+
817
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
818
+ def exists?(conditions = nil); end
819
+
820
+ sig { params(args: T.untyped).returns(T::Boolean) }
821
+ def any?(*args); end
822
+
823
+ sig { params(args: T.untyped).returns(T::Boolean) }
824
+ def many?(*args); end
825
+
826
+ sig { params(args: T.untyped).returns(T::Boolean) }
827
+ def none?(*args); end
828
+
829
+ sig { params(args: T.untyped).returns(T::Boolean) }
830
+ def one?(*args); end
786
831
  end
787
832
 
788
833
  class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
@@ -1012,6 +1057,15 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
1012
1057
  sig { params(args: T.untyped).returns(Wizard) }
1013
1058
  def find_by!(*args); end
1014
1059
 
1060
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1061
+ def find_or_initialize_by(attributes, &block); end
1062
+
1063
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1064
+ def find_or_create_by(attributes, &block); end
1065
+
1066
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1067
+ def find_or_create_by!(attributes, &block); end
1068
+
1015
1069
  sig { returns(T.nilable(Wizard)) }
1016
1070
  def first; end
1017
1071
 
@@ -1307,6 +1361,15 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
1307
1361
  sig { params(args: T.untyped).returns(Wizard) }
1308
1362
  def find_by!(*args); end
1309
1363
 
1364
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1365
+ def find_or_initialize_by(attributes, &block); end
1366
+
1367
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1368
+ def find_or_create_by(attributes, &block); end
1369
+
1370
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1371
+ def find_or_create_by!(attributes, &block); end
1372
+
1310
1373
  sig { returns(T.nilable(Wizard)) }
1311
1374
  def first; end
1312
1375