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::GeneratedAssociationMethods
247
295
  extend T::Sig
248
296
 
@@ -446,50 +494,41 @@ class Wizard < ApplicationRecord
446
494
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
447
495
  def self.extending(*args, &block); end
448
496
 
449
- sig { params(args: T.untyped).returns(Wizard) }
450
- def self.find(*args); end
451
-
452
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
453
- def self.find_by(*args); end
454
-
455
- sig { params(args: T.untyped).returns(Wizard) }
456
- def self.find_by!(*args); end
497
+ sig { returns(T.nilable(Wizard::Broom)) }
498
+ def typed_broom; end
457
499
 
458
- sig { returns(T.nilable(Wizard)) }
459
- def self.first; end
500
+ sig { params(value: T.nilable(Wizard::Broom)).void }
501
+ def typed_broom=(value); end
460
502
 
461
- sig { returns(Wizard) }
462
- def self.first!; end
503
+ sig { returns(T.nilable(Wizard::EyeColor)) }
504
+ def typed_eye_color; end
463
505
 
464
- sig { returns(T.nilable(Wizard)) }
465
- def self.second; end
506
+ sig { params(value: T.nilable(Wizard::EyeColor)).void }
507
+ def typed_eye_color=(value); end
466
508
 
467
- sig { returns(Wizard) }
468
- def self.second!; end
509
+ sig { returns(T.nilable(Wizard::HairColor)) }
510
+ def typed_hair_color; end
469
511
 
470
- sig { returns(T.nilable(Wizard)) }
471
- def self.third; end
512
+ sig { params(value: T.nilable(Wizard::HairColor)).void }
513
+ def typed_hair_color=(value); end
472
514
 
473
- sig { returns(Wizard) }
474
- def self.third!; end
515
+ sig { returns(T.nilable(Wizard::House)) }
516
+ def typed_house; end
475
517
 
476
- sig { returns(T.nilable(Wizard)) }
477
- def self.third_to_last; end
518
+ sig { params(value: T.nilable(Wizard::House)).void }
519
+ def typed_house=(value); end
478
520
 
479
- sig { returns(Wizard) }
480
- def self.third_to_last!; end
521
+ sig { returns(T.nilable(Wizard::ProfessorEnum)) }
522
+ def typed_professor; end
481
523
 
482
- sig { returns(T.nilable(Wizard)) }
483
- def self.second_to_last; end
524
+ sig { params(value: T.nilable(Wizard::ProfessorEnum)).void }
525
+ def typed_professor=(value); end
484
526
 
485
- sig { returns(Wizard) }
486
- def self.second_to_last!; end
527
+ sig { returns(T.nilable(Wizard::QuidditchPosition)) }
528
+ def typed_quidditch_position; end
487
529
 
488
- sig { returns(T.nilable(Wizard)) }
489
- def self.last; end
490
-
491
- sig { returns(Wizard) }
492
- def self.last!; end
530
+ sig { params(value: T.nilable(Wizard::QuidditchPosition)).void }
531
+ def typed_quidditch_position=(value); end
493
532
 
494
533
  sig { params(conditions: T.untyped).returns(T::Boolean) }
495
534
  def self.exists?(conditions = nil); end
@@ -505,15 +544,6 @@ class Wizard < ApplicationRecord
505
544
 
506
545
  sig { params(args: T.untyped).returns(T::Boolean) }
507
546
  def self.one?(*args); end
508
-
509
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
510
- def self.create(attributes = nil, &block); end
511
-
512
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
513
- def self.create!(attributes = nil, &block); end
514
-
515
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
516
- def self.new(attributes = nil, &block); end
517
547
  end
518
548
 
519
549
  class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
@@ -661,6 +691,21 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
661
691
 
662
692
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
663
693
  def extending(*args, &block); end
694
+
695
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
696
+ def exists?(conditions = nil); end
697
+
698
+ sig { params(args: T.untyped).returns(T::Boolean) }
699
+ def any?(*args); end
700
+
701
+ sig { params(args: T.untyped).returns(T::Boolean) }
702
+ def many?(*args); end
703
+
704
+ sig { params(args: T.untyped).returns(T::Boolean) }
705
+ def none?(*args); end
706
+
707
+ sig { params(args: T.untyped).returns(T::Boolean) }
708
+ def one?(*args); end
664
709
  end
665
710
 
666
711
  class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
@@ -818,6 +863,15 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
818
863
  sig { params(args: T.untyped).returns(Wizard) }
819
864
  def find_by!(*args); end
820
865
 
866
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
867
+ def find_or_initialize_by(attributes, &block); end
868
+
869
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
870
+ def find_or_create_by(attributes, &block); end
871
+
872
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
873
+ def find_or_create_by!(attributes, &block); end
874
+
821
875
  sig { returns(T.nilable(Wizard)) }
822
876
  def first; end
823
877
 
@@ -1041,6 +1095,15 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
1041
1095
  sig { params(args: T.untyped).returns(Wizard) }
1042
1096
  def find_by!(*args); end
1043
1097
 
1098
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1099
+ def find_or_initialize_by(attributes, &block); end
1100
+
1101
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1102
+ def find_or_create_by(attributes, &block); end
1103
+
1104
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1105
+ def find_or_create_by!(attributes, &block); end
1106
+
1044
1107
  sig { returns(T.nilable(Wizard)) }
1045
1108
  def first; end
1046
1109
 
@@ -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::GeneratedAssociationMethods
247
295
  extend T::Sig
248
296
 
@@ -446,50 +494,41 @@ class Wizard < ApplicationRecord
446
494
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
447
495
  def self.extending(*args, &block); end
448
496
 
449
- sig { params(args: T.untyped).returns(Wizard) }
450
- def self.find(*args); end
451
-
452
- sig { params(args: T.untyped).returns(T.nilable(Wizard)) }
453
- def self.find_by(*args); end
454
-
455
- sig { params(args: T.untyped).returns(Wizard) }
456
- def self.find_by!(*args); end
497
+ sig { returns(T.nilable(Wizard::Broom)) }
498
+ def typed_broom; end
457
499
 
458
- sig { returns(T.nilable(Wizard)) }
459
- def self.first; end
500
+ sig { params(value: T.nilable(Wizard::Broom)).void }
501
+ def typed_broom=(value); end
460
502
 
461
- sig { returns(Wizard) }
462
- def self.first!; end
503
+ sig { returns(T.nilable(Wizard::EyeColor)) }
504
+ def typed_eye_color; end
463
505
 
464
- sig { returns(T.nilable(Wizard)) }
465
- def self.second; end
506
+ sig { params(value: T.nilable(Wizard::EyeColor)).void }
507
+ def typed_eye_color=(value); end
466
508
 
467
- sig { returns(Wizard) }
468
- def self.second!; end
509
+ sig { returns(T.nilable(Wizard::HairColor)) }
510
+ def typed_hair_color; end
469
511
 
470
- sig { returns(T.nilable(Wizard)) }
471
- def self.third; end
512
+ sig { params(value: T.nilable(Wizard::HairColor)).void }
513
+ def typed_hair_color=(value); end
472
514
 
473
- sig { returns(Wizard) }
474
- def self.third!; end
515
+ sig { returns(T.nilable(Wizard::House)) }
516
+ def typed_house; end
475
517
 
476
- sig { returns(T.nilable(Wizard)) }
477
- def self.third_to_last; end
518
+ sig { params(value: T.nilable(Wizard::House)).void }
519
+ def typed_house=(value); end
478
520
 
479
- sig { returns(Wizard) }
480
- def self.third_to_last!; end
521
+ sig { returns(T.nilable(Wizard::ProfessorEnum)) }
522
+ def typed_professor; end
481
523
 
482
- sig { returns(T.nilable(Wizard)) }
483
- def self.second_to_last; end
524
+ sig { params(value: T.nilable(Wizard::ProfessorEnum)).void }
525
+ def typed_professor=(value); end
484
526
 
485
- sig { returns(Wizard) }
486
- def self.second_to_last!; end
527
+ sig { returns(T.nilable(Wizard::QuidditchPosition)) }
528
+ def typed_quidditch_position; end
487
529
 
488
- sig { returns(T.nilable(Wizard)) }
489
- def self.last; end
490
-
491
- sig { returns(Wizard) }
492
- def self.last!; end
530
+ sig { params(value: T.nilable(Wizard::QuidditchPosition)).void }
531
+ def typed_quidditch_position=(value); end
493
532
 
494
533
  sig { params(conditions: T.untyped).returns(T::Boolean) }
495
534
  def self.exists?(conditions = nil); end
@@ -505,15 +544,6 @@ class Wizard < ApplicationRecord
505
544
 
506
545
  sig { params(args: T.untyped).returns(T::Boolean) }
507
546
  def self.one?(*args); end
508
-
509
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
510
- def self.create(attributes = nil, &block); end
511
-
512
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
513
- def self.create!(attributes = nil, &block); end
514
-
515
- sig { params(attributes: T.untyped, block: T.untyped).returns(Wizard) }
516
- def self.new(attributes = nil, &block); end
517
547
  end
518
548
 
519
549
  class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
@@ -661,6 +691,21 @@ class Wizard::ActiveRecord_Relation < ActiveRecord::Relation
661
691
 
662
692
  sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wizard::ActiveRecord_Relation) }
663
693
  def extending(*args, &block); end
694
+
695
+ sig { params(conditions: T.untyped).returns(T::Boolean) }
696
+ def exists?(conditions = nil); end
697
+
698
+ sig { params(args: T.untyped).returns(T::Boolean) }
699
+ def any?(*args); end
700
+
701
+ sig { params(args: T.untyped).returns(T::Boolean) }
702
+ def many?(*args); end
703
+
704
+ sig { params(args: T.untyped).returns(T::Boolean) }
705
+ def none?(*args); end
706
+
707
+ sig { params(args: T.untyped).returns(T::Boolean) }
708
+ def one?(*args); end
664
709
  end
665
710
 
666
711
  class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
@@ -818,6 +863,15 @@ class Wizard::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelati
818
863
  sig { params(args: T.untyped).returns(Wizard) }
819
864
  def find_by!(*args); end
820
865
 
866
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
867
+ def find_or_initialize_by(attributes, &block); end
868
+
869
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
870
+ def find_or_create_by(attributes, &block); end
871
+
872
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
873
+ def find_or_create_by!(attributes, &block); end
874
+
821
875
  sig { returns(T.nilable(Wizard)) }
822
876
  def first; end
823
877
 
@@ -1041,6 +1095,15 @@ class Wizard::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associat
1041
1095
  sig { params(args: T.untyped).returns(Wizard) }
1042
1096
  def find_by!(*args); end
1043
1097
 
1098
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1099
+ def find_or_initialize_by(attributes, &block); end
1100
+
1101
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1102
+ def find_or_create_by(attributes, &block); end
1103
+
1104
+ sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: Wizard).void)).returns(Wizard) }
1105
+ def find_or_create_by!(attributes, &block); end
1106
+
1044
1107
  sig { returns(T.nilable(Wizard)) }
1045
1108
  def first; end
1046
1109