sorbet-rails 0.7.33 → 0.7.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci-master.yml +1 -1
  3. data/.github/workflows/ci.yml +1 -1
  4. data/CONTRIBUTING.md +1 -0
  5. data/Gemfile +4 -0
  6. data/README.md +1 -1
  7. data/Rakefile +27 -1
  8. data/lib/sorbet-rails/active_record_rbi_formatter.rb +1 -1
  9. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +14 -0
  10. data/lib/sorbet-rails/rails_mixins/active_record_overrides.rb +1 -1
  11. data/lib/sorbet-rails/tasks/rails_rbi.rake +15 -0
  12. data/sorbet-rails.gemspec +1 -1
  13. data/spec/bin/run_all_specs.sh +1 -0
  14. data/spec/generators/rails-template.rb +2 -7
  15. data/spec/rails_helper.rb +2 -0
  16. data/spec/rake_rails_rbi_models_spec.rb +1 -1
  17. data/spec/support/v5.2/sorbet_test_cases.rb +8 -0
  18. data/spec/support/v6.0/sorbet_test_cases.rb +8 -0
  19. data/spec/support/v6.1/sorbet_test_cases.rb +8 -0
  20. data/spec/support/v7.0/.gitattributes +7 -0
  21. data/spec/support/v7.0/.gitignore +35 -0
  22. data/spec/support/v7.0/Gemfile +48 -0
  23. data/spec/support/v7.0/Gemfile.lock +218 -0
  24. data/spec/support/v7.0/README.md +24 -0
  25. data/spec/support/v7.0/Rakefile +6 -0
  26. data/spec/support/v7.0/app/assets/images/.keep +0 -0
  27. data/spec/support/v7.0/app/assets/stylesheets/application.css +1 -0
  28. data/spec/support/v7.0/app/controllers/application_controller.rb +3 -0
  29. data/spec/support/v7.0/app/controllers/concerns/.keep +0 -0
  30. data/spec/support/v7.0/app/helpers/application_helper.rb +3 -0
  31. data/spec/support/v7.0/app/helpers/bar_helper.rb +3 -0
  32. data/spec/support/v7.0/app/helpers/baz_helper.rb +3 -0
  33. data/spec/support/v7.0/app/helpers/foo_helper.rb +3 -0
  34. data/spec/support/v7.0/app/jobs/application_job.rb +8 -0
  35. data/spec/support/v7.0/app/jobs/award_house_point_hourglasses.rb +12 -0
  36. data/spec/support/v7.0/app/mailers/application_mailer.rb +5 -0
  37. data/spec/support/v7.0/app/mailers/daily_prophet_mailer.rb +9 -0
  38. data/spec/support/v7.0/app/mailers/hogwarts_acceptance_mailer.rb +29 -0
  39. data/spec/support/v7.0/app/models/application_record.rb +4 -0
  40. data/spec/support/v7.0/app/models/concerns/.keep +0 -0
  41. data/spec/support/v7.0/app/models/concerns/mythical.rb +11 -0
  42. data/spec/support/v7.0/app/models/headmaster.rb +8 -0
  43. data/spec/support/v7.0/app/models/potion.rb +6 -0
  44. data/spec/support/v7.0/app/models/robe.rb +4 -0
  45. data/spec/support/v7.0/app/models/school.rb +5 -0
  46. data/spec/support/v7.0/app/models/spell.rb +5 -0
  47. data/spec/support/v7.0/app/models/spell_book.rb +18 -0
  48. data/spec/support/v7.0/app/models/squib.rb +6 -0
  49. data/spec/support/v7.0/app/models/subject.rb +5 -0
  50. data/spec/support/v7.0/app/models/wand.rb +19 -0
  51. data/spec/support/v7.0/app/models/wizard.rb +65 -0
  52. data/spec/support/v7.0/app/views/layouts/application.html.erb +15 -0
  53. data/spec/support/v7.0/app/views/layouts/mailer.html.erb +13 -0
  54. data/spec/support/v7.0/app/views/layouts/mailer.text.erb +1 -0
  55. data/spec/support/v7.0/bin/bundle +114 -0
  56. data/spec/support/v7.0/bin/rails +4 -0
  57. data/spec/support/v7.0/bin/rake +4 -0
  58. data/spec/support/v7.0/bin/setup +33 -0
  59. data/spec/support/v7.0/config/application.rb +38 -0
  60. data/spec/support/v7.0/config/boot.rb +4 -0
  61. data/spec/support/v7.0/config/database.yml +25 -0
  62. data/spec/support/v7.0/config/environment.rb +6 -0
  63. data/spec/support/v7.0/config/environments/development.rb +69 -0
  64. data/spec/support/v7.0/config/environments/production.rb +83 -0
  65. data/spec/support/v7.0/config/environments/test.rb +61 -0
  66. data/spec/support/v7.0/config/initializers/content_security_policy.rb +26 -0
  67. data/spec/support/v7.0/config/initializers/filter_parameter_logging.rb +9 -0
  68. data/spec/support/v7.0/config/initializers/inflections.rb +17 -0
  69. data/spec/support/v7.0/config/initializers/permissions_policy.rb +12 -0
  70. data/spec/support/v7.0/config/initializers/sorbet_rails.rb +3 -0
  71. data/spec/support/v7.0/config/locales/en.yml +33 -0
  72. data/spec/support/v7.0/config/puma.rb +44 -0
  73. data/spec/support/v7.0/config/routes.rb +8 -0
  74. data/spec/support/v7.0/config/storage.yml +34 -0
  75. data/spec/support/v7.0/config.ru +6 -0
  76. data/spec/support/v7.0/db/migrate/20190620000001_create_wizards.rb +14 -0
  77. data/spec/support/v7.0/db/migrate/20190620000002_create_wands.rb +12 -0
  78. data/spec/support/v7.0/db/migrate/20190620000003_create_spell_books.rb +10 -0
  79. data/spec/support/v7.0/db/migrate/20190620000004_add_more_column_types_to_wands.rb +14 -0
  80. data/spec/support/v7.0/db/migrate/20190620000005_add_broom_to_wizard.rb +6 -0
  81. data/spec/support/v7.0/db/migrate/20190620000006_add_more_enums_to_wizard.rb +9 -0
  82. data/spec/support/v7.0/db/migrate/20190620000007_add_type_to_wizard.rb +6 -0
  83. data/spec/support/v7.0/db/migrate/20190620000008_add_robe_to_wizard.rb +8 -0
  84. data/spec/support/v7.0/db/migrate/20190620000009_add_school.rb +10 -0
  85. data/spec/support/v7.0/db/migrate/20190620000010_add_subject.rb +8 -0
  86. data/spec/support/v7.0/db/migrate/20190620000011_add_subjects_wizards.rb +8 -0
  87. data/spec/support/v7.0/db/migrate/20190620000012_add_spell.rb +8 -0
  88. data/spec/support/v7.0/db/migrate/20190620000013_add_spells_spell_books.rb +8 -0
  89. data/spec/support/v7.0/db/migrate/20190620000014_create_headmasters.rb +9 -0
  90. data/spec/support/v7.0/db/migrate/20190620000015_add_serialized_to_wizards.rb +9 -0
  91. data/spec/support/v7.0/db/schema.rb +98 -0
  92. data/spec/support/v7.0/db/seeds.rb +8 -0
  93. data/spec/support/v7.0/lib/assets/.keep +0 -0
  94. data/spec/support/v7.0/lib/mythical_rbi_plugin.rb +16 -0
  95. data/spec/support/v7.0/lib/tasks/.keep +0 -0
  96. data/spec/support/v7.0/log/.keep +0 -0
  97. data/spec/support/v7.0/sorbet_test_cases.rb +439 -0
  98. data/spec/support/v7.0/storage/.keep +0 -0
  99. data/spec/support/v7.0/tmp/.keep +0 -0
  100. data/spec/support/v7.0/tmp/pids/.keep +0 -0
  101. data/spec/support/v7.0/tmp/storage/.keep +0 -0
  102. data/spec/support/v7.0/vendor/.keep +0 -0
  103. data/spec/test_data/v5.2/expected_active_record_base.rbi +6 -0
  104. data/spec/test_data/v5.2/expected_active_record_relation.rbi +6 -0
  105. data/spec/test_data/v6.0/expected_active_record_base.rbi +6 -0
  106. data/spec/test_data/v6.0/expected_active_record_relation.rbi +6 -0
  107. data/spec/test_data/v6.1/expected_active_record_base.rbi +6 -0
  108. data/spec/test_data/v6.1/expected_active_record_relation.rbi +6 -0
  109. data/spec/test_data/v7.0/expected_active_record_base.rbi +119 -0
  110. data/spec/test_data/v7.0/expected_active_record_relation.rbi +180 -0
  111. data/spec/test_data/v7.0/expected_application_job.rbi +20 -0
  112. data/spec/test_data/v7.0/expected_application_mailer.rbi +5 -0
  113. data/spec/test_data/v7.0/expected_attachment.rbi +358 -0
  114. data/spec/test_data/v7.0/expected_award_house_point_hourglasses.rbi +20 -0
  115. data/spec/test_data/v7.0/expected_blob.rbi +394 -0
  116. data/spec/test_data/v7.0/expected_custom_application_job.rbi +21 -0
  117. data/spec/test_data/v7.0/expected_custom_application_mailer.rbi +6 -0
  118. data/spec/test_data/v7.0/expected_custom_award_house_point_hourglasses.rbi +21 -0
  119. data/spec/test_data/v7.0/expected_custom_daily_prophet_mailer.rbi +8 -0
  120. data/spec/test_data/v7.0/expected_custom_hogwarts_acceptance_mailer.rbi +21 -0
  121. data/spec/test_data/v7.0/expected_daily_prophet_mailer.rbi +7 -0
  122. data/spec/test_data/v7.0/expected_headmaster.rbi +376 -0
  123. data/spec/test_data/v7.0/expected_helpers.rbi +27 -0
  124. data/spec/test_data/v7.0/expected_helpers_with_application_and_devise_helpers.rbi +34 -0
  125. data/spec/test_data/v7.0/expected_hogwarts_acceptance_mailer.rbi +20 -0
  126. data/spec/test_data/v7.0/expected_internal_metadata.rbi +346 -0
  127. data/spec/test_data/v7.0/expected_no_routes.rbi +4 -0
  128. data/spec/test_data/v7.0/expected_potion.rbi +328 -0
  129. data/spec/test_data/v7.0/expected_record.rbi +307 -0
  130. data/spec/test_data/v7.0/expected_robe.rbi +349 -0
  131. data/spec/test_data/v7.0/expected_routes.rbi +182 -0
  132. data/spec/test_data/v7.0/expected_schema_migration.rbi +319 -0
  133. data/spec/test_data/v7.0/expected_school.rbi +349 -0
  134. data/spec/test_data/v7.0/expected_spell/habtm_spell_books.rbi +367 -0
  135. data/spec/test_data/v7.0/expected_spell.rbi +340 -0
  136. data/spec/test_data/v7.0/expected_spell_book/habtm_spells.rbi +367 -0
  137. data/spec/test_data/v7.0/expected_spell_book.rbi +499 -0
  138. data/spec/test_data/v7.0/expected_squib.rbi +1204 -0
  139. data/spec/test_data/v7.0/expected_srb_tc_output.txt +1 -0
  140. data/spec/test_data/v7.0/expected_subject/habtm_wizards.rbi +367 -0
  141. data/spec/test_data/v7.0/expected_subject.rbi +340 -0
  142. data/spec/test_data/v7.0/expected_variant_record.rbi +382 -0
  143. data/spec/test_data/v7.0/expected_wand.rbi +611 -0
  144. data/spec/test_data/v7.0/expected_wizard/habtm_subjects.rbi +367 -0
  145. data/spec/test_data/v7.0/expected_wizard.rbi +1280 -0
  146. data/spec/test_data/v7.0/expected_wizard_wo_spellbook.rbi +1274 -0
  147. metadata +243 -1
@@ -0,0 +1,611 @@
1
+ # This is an autogenerated file for dynamic methods in Wand
2
+ # Please rerun bundle exec rake rails_rbi:models[Wand] to regenerate.
3
+
4
+ # typed: strong
5
+ module Wand::EnumInstanceMethods
6
+ sig { returns(T::Boolean) }
7
+ def phoenix_feather?; end
8
+
9
+ sig { void }
10
+ def phoenix_feather!; end
11
+
12
+ sig { returns(T::Boolean) }
13
+ def dragon_heartstring?; end
14
+
15
+ sig { void }
16
+ def dragon_heartstring!; end
17
+
18
+ sig { returns(T::Boolean) }
19
+ def unicorn_tail_hair?; end
20
+
21
+ sig { void }
22
+ def unicorn_tail_hair!; end
23
+
24
+ sig { returns(T::Boolean) }
25
+ def basilisk_horn?; end
26
+
27
+ sig { void }
28
+ def basilisk_horn!; end
29
+ end
30
+
31
+ module Wand::ActiveRelation_WhereNot
32
+ sig { params(opts: T.untyped, rest: T.untyped).returns(T.self_type) }
33
+ def not(opts, *rest); end
34
+ end
35
+
36
+ module Wand::GeneratedAttributeMethods
37
+ sig { returns(T::Boolean) }
38
+ def broken; end
39
+
40
+ sig { params(value: T::Boolean).void }
41
+ def broken=(value); end
42
+
43
+ sig { returns(T::Boolean) }
44
+ def broken?; end
45
+
46
+ sig { returns(T.nilable(Time)) }
47
+ def broken_at; end
48
+
49
+ sig { params(value: T.nilable(Time)).void }
50
+ def broken_at=(value); end
51
+
52
+ sig { returns(T::Boolean) }
53
+ def broken_at?; end
54
+
55
+ sig { returns(T.nilable(Date)) }
56
+ def chosen_at_date; end
57
+
58
+ sig { params(value: T.nilable(Date)).void }
59
+ def chosen_at_date=(value); end
60
+
61
+ sig { returns(T::Boolean) }
62
+ def chosen_at_date?; end
63
+
64
+ sig { returns(T.nilable(ActiveSupport::TimeWithZone)) }
65
+ def chosen_at_time; end
66
+
67
+ sig { params(value: T.nilable(T.any(Date, Time, ActiveSupport::TimeWithZone))).void }
68
+ def chosen_at_time=(value); end
69
+
70
+ sig { returns(T::Boolean) }
71
+ def chosen_at_time?; end
72
+
73
+ sig { returns(T.nilable(String)) }
74
+ def core_type; end
75
+
76
+ sig { params(value: T.nilable(T.any(Integer, String, Symbol))).void }
77
+ def core_type=(value); end
78
+
79
+ sig { returns(T::Boolean) }
80
+ def core_type?; end
81
+
82
+ sig { returns(ActiveSupport::TimeWithZone) }
83
+ def created_at; end
84
+
85
+ sig { params(value: T.any(Date, Time, ActiveSupport::TimeWithZone)).void }
86
+ def created_at=(value); end
87
+
88
+ sig { returns(T::Boolean) }
89
+ def created_at?; end
90
+
91
+ sig { returns(Float) }
92
+ def flexibility; end
93
+
94
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
95
+ def flexibility=(value); end
96
+
97
+ sig { returns(T::Boolean) }
98
+ def flexibility?; end
99
+
100
+ sig { returns(BigDecimal) }
101
+ def hardness; end
102
+
103
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
104
+ def hardness=(value); end
105
+
106
+ sig { returns(T::Boolean) }
107
+ def hardness?; end
108
+
109
+ sig { returns(Integer) }
110
+ def id; end
111
+
112
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
113
+ def id=(value); end
114
+
115
+ sig { returns(T::Boolean) }
116
+ def id?; end
117
+
118
+ sig { returns(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String)) }
119
+ def maker_info; end
120
+
121
+ sig { params(value: T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String)).void }
122
+ def maker_info=(value); end
123
+
124
+ sig { returns(T::Boolean) }
125
+ def maker_info?; end
126
+
127
+ sig { returns(Integer) }
128
+ def reflectance; end
129
+
130
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
131
+ def reflectance=(value); end
132
+
133
+ sig { returns(T::Boolean) }
134
+ def reflectance?; end
135
+
136
+ sig { returns(T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))) }
137
+ def spell_history; end
138
+
139
+ sig { params(value: T.nilable(T.any(T::Array[T.untyped], T::Boolean, Float, T::Hash[T.untyped, T.untyped], Integer, String))).void }
140
+ def spell_history=(value); end
141
+
142
+ sig { returns(T::Boolean) }
143
+ def spell_history?; end
144
+
145
+ sig { returns(ActiveSupport::TimeWithZone) }
146
+ def updated_at; end
147
+
148
+ sig { params(value: T.any(Date, Time, ActiveSupport::TimeWithZone)).void }
149
+ def updated_at=(value); end
150
+
151
+ sig { returns(T::Boolean) }
152
+ def updated_at?; end
153
+
154
+ sig { returns(Integer) }
155
+ def wizard_id; end
156
+
157
+ sig { params(value: T.any(Numeric, ActiveSupport::Duration)).void }
158
+ def wizard_id=(value); end
159
+
160
+ sig { returns(T::Boolean) }
161
+ def wizard_id?; end
162
+
163
+ sig { returns(T.nilable(String)) }
164
+ def wood_type; end
165
+
166
+ sig { params(value: T.nilable(T.any(String, Symbol))).void }
167
+ def wood_type=(value); end
168
+
169
+ sig { returns(T::Boolean) }
170
+ def wood_type?; end
171
+ end
172
+
173
+ module Wand::GeneratedAssociationMethods
174
+ sig { returns(::Wizard) }
175
+ def wizard; end
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
+
186
+ sig { params(value: ::Wizard).void }
187
+ def wizard=(value); end
188
+
189
+ sig { returns(::Wizard) }
190
+ def reload_wizard; end
191
+ end
192
+
193
+ module Wand::CustomFinderMethods
194
+ sig { params(limit: Integer).returns(T::Array[Wand]) }
195
+ def first_n(limit); end
196
+
197
+ sig { params(limit: Integer).returns(T::Array[Wand]) }
198
+ def last_n(limit); end
199
+
200
+ sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Wand]) }
201
+ def find_n(*args); end
202
+
203
+ sig { params(id: T.nilable(Integer)).returns(T.nilable(Wand)) }
204
+ def find_by_id(id); end
205
+
206
+ sig { params(id: Integer).returns(Wand) }
207
+ def find_by_id!(id); end
208
+ end
209
+
210
+ class Wand < ApplicationRecord
211
+ include Wand::EnumInstanceMethods
212
+ include Wand::GeneratedAttributeMethods
213
+ include Wand::GeneratedAssociationMethods
214
+ extend Wand::CustomFinderMethods
215
+ extend Wand::QueryMethodsReturningRelation
216
+ RelationType = T.type_alias { T.any(Wand::ActiveRecord_Relation, Wand::ActiveRecord_Associations_CollectionProxy, Wand::ActiveRecord_AssociationRelation) }
217
+
218
+ sig { returns(T::Hash[T.any(String, Symbol), Integer]) }
219
+ def self.core_types; end
220
+
221
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
222
+ def self.basilisk_horn(*args); end
223
+
224
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
225
+ def self.dragon_heartstring(*args); end
226
+
227
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
228
+ def self.not_basilisk_horn(*args); end
229
+
230
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
231
+ def self.not_dragon_heartstring(*args); end
232
+
233
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
234
+ def self.not_phoenix_feather(*args); end
235
+
236
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
237
+ def self.not_unicorn_tail_hair(*args); end
238
+
239
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
240
+ def self.phoenix_feather(*args); end
241
+
242
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
243
+ def self.unicorn_tail_hair(*args); end
244
+
245
+ sig { returns(T.nilable(Wand::CoreType)) }
246
+ def typed_core_type; end
247
+
248
+ sig { params(value: T.nilable(Wand::CoreType)).void }
249
+ def typed_core_type=(value); end
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
+
261
+ sig { returns(T::Array[Wand]) }
262
+ def self.mythicals; end
263
+ end
264
+
265
+ class Wand::ActiveRecord_Relation < ActiveRecord::Relation
266
+ include Wand::ActiveRelation_WhereNot
267
+ include Wand::CustomFinderMethods
268
+ include Wand::QueryMethodsReturningRelation
269
+ Elem = type_member {{fixed: Wand}}
270
+
271
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
272
+ def basilisk_horn(*args); end
273
+
274
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
275
+ def dragon_heartstring(*args); end
276
+
277
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
278
+ def not_basilisk_horn(*args); end
279
+
280
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
281
+ def not_dragon_heartstring(*args); end
282
+
283
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
284
+ def not_phoenix_feather(*args); end
285
+
286
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
287
+ def not_unicorn_tail_hair(*args); end
288
+
289
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
290
+ def phoenix_feather(*args); end
291
+
292
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
293
+ def unicorn_tail_hair(*args); end
294
+ end
295
+
296
+ class Wand::ActiveRecord_AssociationRelation < ActiveRecord::AssociationRelation
297
+ include Wand::ActiveRelation_WhereNot
298
+ include Wand::CustomFinderMethods
299
+ include Wand::QueryMethodsReturningAssociationRelation
300
+ Elem = type_member {{fixed: Wand}}
301
+
302
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
303
+ def basilisk_horn(*args); end
304
+
305
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
306
+ def dragon_heartstring(*args); end
307
+
308
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
309
+ def not_basilisk_horn(*args); end
310
+
311
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
312
+ def not_dragon_heartstring(*args); end
313
+
314
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
315
+ def not_phoenix_feather(*args); end
316
+
317
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
318
+ def not_unicorn_tail_hair(*args); end
319
+
320
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
321
+ def phoenix_feather(*args); end
322
+
323
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
324
+ def unicorn_tail_hair(*args); end
325
+ end
326
+
327
+ class Wand::ActiveRecord_Associations_CollectionProxy < ActiveRecord::Associations::CollectionProxy
328
+ include Wand::CustomFinderMethods
329
+ include Wand::QueryMethodsReturningAssociationRelation
330
+ Elem = type_member {{fixed: Wand}}
331
+
332
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
333
+ def basilisk_horn(*args); end
334
+
335
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
336
+ def dragon_heartstring(*args); end
337
+
338
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
339
+ def not_basilisk_horn(*args); end
340
+
341
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
342
+ def not_dragon_heartstring(*args); end
343
+
344
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
345
+ def not_phoenix_feather(*args); end
346
+
347
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
348
+ def not_unicorn_tail_hair(*args); end
349
+
350
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
351
+ def phoenix_feather(*args); end
352
+
353
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
354
+ def unicorn_tail_hair(*args); end
355
+
356
+ sig { params(records: T.any(Wand, T::Array[Wand])).returns(T.self_type) }
357
+ def <<(*records); end
358
+
359
+ sig { params(records: T.any(Wand, T::Array[Wand])).returns(T.self_type) }
360
+ def append(*records); end
361
+
362
+ sig { params(records: T.any(Wand, T::Array[Wand])).returns(T.self_type) }
363
+ def push(*records); end
364
+
365
+ sig { params(records: T.any(Wand, T::Array[Wand])).returns(T.self_type) }
366
+ def concat(*records); end
367
+ end
368
+
369
+ module Wand::QueryMethodsReturningRelation
370
+ sig { returns(Wand::ActiveRecord_Relation) }
371
+ def all; end
372
+
373
+ sig { params(block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_Relation) }
374
+ def unscoped(&block); end
375
+
376
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
377
+ def reselect(*args); end
378
+
379
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
380
+ def order(*args); end
381
+
382
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
383
+ def reorder(*args); end
384
+
385
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
386
+ def group(*args); end
387
+
388
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
389
+ def limit(*args); end
390
+
391
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
392
+ def offset(*args); end
393
+
394
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
395
+ def joins(*args); end
396
+
397
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
398
+ def left_joins(*args); end
399
+
400
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
401
+ def left_outer_joins(*args); end
402
+
403
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
404
+ def where(*args); end
405
+
406
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
407
+ def rewhere(*args); end
408
+
409
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
410
+ def preload(*args); end
411
+
412
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
413
+ def extract_associated(*args); end
414
+
415
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
416
+ def eager_load(*args); end
417
+
418
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
419
+ def includes(*args); end
420
+
421
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
422
+ def from(*args); end
423
+
424
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
425
+ def lock(*args); end
426
+
427
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
428
+ def readonly(*args); end
429
+
430
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
431
+ def or(*args); end
432
+
433
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
434
+ def having(*args); end
435
+
436
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
437
+ def create_with(*args); end
438
+
439
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
440
+ def distinct(*args); end
441
+
442
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
443
+ def references(*args); end
444
+
445
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
446
+ def none(*args); end
447
+
448
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
449
+ def unscope(*args); end
450
+
451
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
452
+ def optimizer_hints(*args); end
453
+
454
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
455
+ def merge(*args); end
456
+
457
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
458
+ def except(*args); end
459
+
460
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_Relation) }
461
+ def only(*args); end
462
+
463
+ sig { params(block: T.proc.params(e: Wand).returns(T::Boolean)).returns(T::Array[Wand]) }
464
+ def select(&block); end
465
+
466
+ sig { params(args: T.any(String, Symbol, T::Array[T.any(String, Symbol)])).returns(Wand::ActiveRecord_Relation) }
467
+ def select_columns(*args); end
468
+
469
+ sig { params(args: Symbol).returns(Wand::ActiveRecord_Relation) }
470
+ def where_missing(*args); end
471
+
472
+ sig { params(column: Symbol, values: T::Array[T.untyped]).returns(Wand::ActiveRecord_Relation) }
473
+ def in_order_of(column, values); end
474
+
475
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_Relation) }
476
+ def extending(*args, &block); end
477
+
478
+ sig do
479
+ params(
480
+ of: T.nilable(Integer),
481
+ start: T.nilable(Integer),
482
+ finish: T.nilable(Integer),
483
+ load: T.nilable(T::Boolean),
484
+ error_on_ignore: T.nilable(T::Boolean),
485
+ block: T.nilable(T.proc.params(e: Wand::ActiveRecord_Relation).void)
486
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
487
+ end
488
+ def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
489
+ end
490
+
491
+ module Wand::QueryMethodsReturningAssociationRelation
492
+ sig { returns(Wand::ActiveRecord_AssociationRelation) }
493
+ def all; end
494
+
495
+ sig { params(block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_Relation) }
496
+ def unscoped(&block); end
497
+
498
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
499
+ def reselect(*args); end
500
+
501
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
502
+ def order(*args); end
503
+
504
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
505
+ def reorder(*args); end
506
+
507
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
508
+ def group(*args); end
509
+
510
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
511
+ def limit(*args); end
512
+
513
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
514
+ def offset(*args); end
515
+
516
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
517
+ def joins(*args); end
518
+
519
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
520
+ def left_joins(*args); end
521
+
522
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
523
+ def left_outer_joins(*args); end
524
+
525
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
526
+ def where(*args); end
527
+
528
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
529
+ def rewhere(*args); end
530
+
531
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
532
+ def preload(*args); end
533
+
534
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
535
+ def extract_associated(*args); end
536
+
537
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
538
+ def eager_load(*args); end
539
+
540
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
541
+ def includes(*args); end
542
+
543
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
544
+ def from(*args); end
545
+
546
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
547
+ def lock(*args); end
548
+
549
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
550
+ def readonly(*args); end
551
+
552
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
553
+ def or(*args); end
554
+
555
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
556
+ def having(*args); end
557
+
558
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
559
+ def create_with(*args); end
560
+
561
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
562
+ def distinct(*args); end
563
+
564
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
565
+ def references(*args); end
566
+
567
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
568
+ def none(*args); end
569
+
570
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
571
+ def unscope(*args); end
572
+
573
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
574
+ def optimizer_hints(*args); end
575
+
576
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
577
+ def merge(*args); end
578
+
579
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
580
+ def except(*args); end
581
+
582
+ sig { params(args: T.untyped).returns(Wand::ActiveRecord_AssociationRelation) }
583
+ def only(*args); end
584
+
585
+ sig { params(block: T.proc.params(e: Wand).returns(T::Boolean)).returns(T::Array[Wand]) }
586
+ def select(&block); end
587
+
588
+ sig { params(args: T.any(String, Symbol, T::Array[T.any(String, Symbol)])).returns(Wand::ActiveRecord_AssociationRelation) }
589
+ def select_columns(*args); end
590
+
591
+ sig { params(args: Symbol).returns(Wand::ActiveRecord_AssociationRelation) }
592
+ def where_missing(*args); end
593
+
594
+ sig { params(column: Symbol, values: T::Array[T.untyped]).returns(Wand::ActiveRecord_AssociationRelation) }
595
+ def in_order_of(column, values); end
596
+
597
+ sig { params(args: T.untyped, block: T.nilable(T.proc.void)).returns(Wand::ActiveRecord_AssociationRelation) }
598
+ def extending(*args, &block); end
599
+
600
+ sig do
601
+ params(
602
+ of: T.nilable(Integer),
603
+ start: T.nilable(Integer),
604
+ finish: T.nilable(Integer),
605
+ load: T.nilable(T::Boolean),
606
+ error_on_ignore: T.nilable(T::Boolean),
607
+ block: T.nilable(T.proc.params(e: Wand::ActiveRecord_AssociationRelation).void)
608
+ ).returns(ActiveRecord::Batches::BatchEnumerator)
609
+ end
610
+ def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, &block); end
611
+ end