sorbet-rails 0.7.33 → 0.7.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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