packwerk 1.0.2 → 1.2.0

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +14 -5
  3. data/.ruby-version +1 -1
  4. data/Gemfile +1 -1
  5. data/Gemfile.lock +129 -111
  6. data/README.md +8 -1
  7. data/USAGE.md +39 -17
  8. data/dev.yml +1 -1
  9. data/exe/packwerk +1 -1
  10. data/gemfiles/Gemfile-rails-6-0 +22 -0
  11. data/lib/packwerk.rb +73 -34
  12. data/lib/packwerk/application_load_paths.rb +3 -2
  13. data/lib/packwerk/application_validator.rb +85 -69
  14. data/lib/packwerk/association_inspector.rb +23 -11
  15. data/lib/packwerk/checker.rb +4 -7
  16. data/lib/packwerk/cli.rb +36 -93
  17. data/lib/packwerk/configuration.rb +10 -2
  18. data/lib/packwerk/const_node_inspector.rb +13 -14
  19. data/lib/packwerk/constant_discovery.rb +2 -0
  20. data/lib/packwerk/constant_name_inspector.rb +0 -1
  21. data/lib/packwerk/dependency_checker.rb +12 -17
  22. data/lib/packwerk/deprecated_references.rb +25 -8
  23. data/lib/packwerk/file_processor.rb +0 -4
  24. data/lib/packwerk/formatters/offenses_formatter.rb +43 -0
  25. data/lib/packwerk/formatters/progress_formatter.rb +9 -4
  26. data/lib/packwerk/generators/configuration_file.rb +0 -1
  27. data/lib/packwerk/inflector.rb +0 -2
  28. data/lib/packwerk/node.rb +9 -2
  29. data/lib/packwerk/node_processor.rb +15 -32
  30. data/lib/packwerk/node_processor_factory.rb +0 -5
  31. data/lib/packwerk/node_visitor.rb +1 -4
  32. data/lib/packwerk/offense.rb +2 -8
  33. data/lib/packwerk/offense_collection.rb +84 -0
  34. data/lib/packwerk/offenses_formatter.rb +15 -0
  35. data/lib/packwerk/output_style.rb +20 -0
  36. data/lib/packwerk/output_styles/coloured.rb +29 -0
  37. data/lib/packwerk/output_styles/plain.rb +26 -0
  38. data/lib/packwerk/package.rb +8 -0
  39. data/lib/packwerk/package_set.rb +8 -5
  40. data/lib/packwerk/parse_run.rb +104 -0
  41. data/lib/packwerk/parsed_constant_definitions.rb +2 -4
  42. data/lib/packwerk/parsers.rb +0 -2
  43. data/lib/packwerk/parsers/erb.rb +4 -2
  44. data/lib/packwerk/parsers/factory.rb +10 -3
  45. data/lib/packwerk/privacy_checker.rb +22 -17
  46. data/lib/packwerk/reference_extractor.rb +0 -8
  47. data/lib/packwerk/reference_offense.rb +49 -0
  48. data/lib/packwerk/result.rb +9 -0
  49. data/lib/packwerk/run_context.rb +4 -20
  50. data/lib/packwerk/sanity_checker.rb +1 -3
  51. data/lib/packwerk/spring_command.rb +1 -1
  52. data/lib/packwerk/version.rb +1 -1
  53. data/lib/packwerk/violation_type.rb +0 -2
  54. data/library.yml +1 -1
  55. data/packwerk.gemspec +1 -0
  56. data/service.yml +1 -4
  57. data/shipit.rubygems.yml +5 -1
  58. data/sorbet/rbi/gems/{actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +56 -36
  59. data/sorbet/rbi/gems/{actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +25 -28
  60. data/sorbet/rbi/gems/{actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +43 -24
  61. data/sorbet/rbi/gems/{actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +382 -284
  62. data/sorbet/rbi/gems/{actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +76 -40
  63. data/sorbet/rbi/gems/{actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +206 -195
  64. data/sorbet/rbi/gems/{activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +64 -75
  65. data/sorbet/rbi/gems/{activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +103 -56
  66. data/sorbet/rbi/gems/{activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1250 -898
  67. data/sorbet/rbi/gems/{activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +92 -120
  68. data/sorbet/rbi/gems/{activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +292 -193
  69. data/sorbet/rbi/gems/{ast@2.4.1.rbi → ast@2.4.2.rbi} +2 -1
  70. data/sorbet/rbi/gems/{better_html@1.0.15.rbi → better_html@1.0.16.rbi} +2 -2
  71. data/sorbet/rbi/gems/{concurrent-ruby@1.1.6.rbi → concurrent-ruby@1.1.8.rbi} +12 -9
  72. data/sorbet/rbi/gems/{erubi@1.9.0.rbi → erubi@1.10.0.rbi} +3 -1
  73. data/sorbet/rbi/gems/{i18n@1.8.2.rbi → i18n@1.8.10.rbi} +19 -52
  74. data/sorbet/rbi/gems/{loofah@2.5.0.rbi → loofah@2.9.0.rbi} +3 -1
  75. data/sorbet/rbi/gems/marcel@1.0.0.rbi +70 -0
  76. data/sorbet/rbi/gems/{mini_mime@1.0.2.rbi → mini_mime@1.0.3.rbi} +6 -6
  77. data/sorbet/rbi/gems/{mini_portile2@2.4.0.rbi → minitest-focus@1.2.1.rbi} +2 -2
  78. data/sorbet/rbi/gems/{minitest@5.14.0.rbi → minitest@5.14.4.rbi} +31 -29
  79. data/sorbet/rbi/gems/{mocha@1.11.2.rbi → mocha@1.12.0.rbi} +25 -36
  80. data/sorbet/rbi/gems/{nio4r@2.5.2.rbi → nio4r@2.5.7.rbi} +21 -20
  81. data/sorbet/rbi/gems/{nokogiri@1.10.9.rbi → nokogiri@1.11.2.rbi} +193 -154
  82. data/sorbet/rbi/gems/parallel@1.20.1.rbi +117 -0
  83. data/sorbet/rbi/gems/parlour@6.0.0.rbi +1272 -0
  84. data/sorbet/rbi/gems/{parser@2.7.1.4.rbi → parser@3.0.0.0.rbi} +287 -174
  85. data/sorbet/rbi/gems/{pry@0.13.1.rbi → pry@0.14.0.rbi} +1 -1
  86. data/sorbet/rbi/gems/racc@1.5.2.rbi +57 -0
  87. data/sorbet/rbi/gems/{rack@2.2.2.rbi → rack@2.2.3.rbi} +23 -35
  88. data/sorbet/rbi/gems/{rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1 -1
  89. data/sorbet/rbi/gems/{railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +132 -121
  90. data/sorbet/rbi/gems/{rake@13.0.1.rbi → rake@13.0.3.rbi} +16 -20
  91. data/sorbet/rbi/gems/{parallel@1.19.1.rbi → regexp_parser@2.1.1.rbi} +2 -2
  92. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +8 -0
  93. data/sorbet/rbi/gems/{rubocop-performance@1.5.2.rbi → rubocop-performance@1.10.2.rbi} +1 -1
  94. data/sorbet/rbi/gems/{rubocop-shopify@1.0.2.rbi → rubocop-shopify@2.0.1.rbi} +1 -1
  95. data/sorbet/rbi/gems/{rubocop-sorbet@0.3.7.rbi → rubocop-sorbet@0.6.1.rbi} +1 -1
  96. data/sorbet/rbi/gems/{rubocop@0.82.0.rbi → rubocop@1.12.0.rbi} +1 -1
  97. data/sorbet/rbi/gems/{ruby-progressbar@1.10.1.rbi → ruby-progressbar@1.11.0.rbi} +1 -1
  98. data/sorbet/rbi/gems/spoom@1.1.0.rbi +1061 -0
  99. data/sorbet/rbi/gems/{spring@2.1.0.rbi → spring@2.1.1.rbi} +7 -7
  100. data/sorbet/rbi/gems/{sprockets-rails@3.2.1.rbi → sprockets-rails@3.2.2.rbi} +88 -68
  101. data/sorbet/rbi/gems/{sprockets@4.0.0.rbi → sprockets@4.0.2.rbi} +8 -7
  102. data/sorbet/rbi/gems/{tapioca@0.4.5.rbi → tapioca@0.4.19.rbi} +109 -24
  103. data/sorbet/rbi/gems/{thor@1.0.1.rbi → thor@1.1.0.rbi} +16 -15
  104. data/sorbet/rbi/gems/{tzinfo@2.0.2.rbi → tzinfo@2.0.4.rbi} +21 -2
  105. data/sorbet/rbi/gems/{unicode-display_width@1.7.0.rbi → unicode-display_width@2.0.0.rbi} +1 -1
  106. data/sorbet/rbi/gems/{websocket-driver@0.7.1.rbi → websocket-driver@0.7.3.rbi} +29 -29
  107. data/sorbet/rbi/gems/{websocket-extensions@0.1.4.rbi → websocket-extensions@0.1.5.rbi} +2 -2
  108. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +177 -0
  109. data/sorbet/tapioca/require.rb +1 -0
  110. metadata +78 -57
  111. data/lib/packwerk/checking_deprecated_references.rb +0 -40
  112. data/lib/packwerk/output_styles.rb +0 -41
  113. data/lib/packwerk/reference_lister.rb +0 -23
  114. data/lib/packwerk/updating_deprecated_references.rb +0 -51
  115. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +0 -8
  116. data/sorbet/rbi/gems/marcel@0.3.3.rbi +0 -30
  117. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +0 -47
  118. data/sorbet/rbi/gems/parlour@4.0.1.rbi +0 -561
  119. data/sorbet/rbi/gems/spoom@1.0.4.rbi +0 -418
  120. data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +0 -8
@@ -1,6 +1,6 @@
1
1
  # DO NOT EDIT MANUALLY
2
2
  # This is an autogenerated file for types exported from the `activejob` gem.
3
- # Please instead update this file by running `dev typecheck update`.
3
+ # Please instead update this file by running `bin/tapioca sync`.
4
4
 
5
5
  # typed: true
6
6
 
@@ -47,8 +47,8 @@ class ActiveJob::Base
47
47
  include(::ActiveSupport::Callbacks)
48
48
  include(::ActiveJob::Callbacks)
49
49
  include(::ActiveJob::Exceptions)
50
- include(::ActiveJob::Logging)
51
50
  include(::ActiveJob::Instrumentation)
51
+ include(::ActiveJob::Logging)
52
52
  include(::ActiveJob::Timezones)
53
53
  include(::ActiveJob::Translation)
54
54
  include(::ActiveJob::TestHelper::TestQueueAdapter)
@@ -73,12 +73,12 @@ class ActiveJob::Base
73
73
  def _run_perform_callbacks(&block); end
74
74
  def logger; end
75
75
  def logger=(val); end
76
- def queue_adapter(*args, &block); end
76
+ def queue_adapter(*_arg0, &_arg1); end
77
77
  def queue_name_prefix; end
78
- def queue_name_prefix=(_); end
78
+ def queue_name_prefix=(_arg0); end
79
79
  def queue_name_prefix?; end
80
80
  def rescue_handlers; end
81
- def rescue_handlers=(_); end
81
+ def rescue_handlers=(_arg0); end
82
82
  def rescue_handlers?; end
83
83
 
84
84
  class << self
@@ -117,8 +117,8 @@ class ActiveJob::Base
117
117
  def rescue_handlers?; end
118
118
  def retry_jitter; end
119
119
  def retry_jitter=(value); end
120
- def return_false_on_aborted_enqueue; end
121
- def return_false_on_aborted_enqueue=(value); end
120
+ def return_false_on_aborted_enqueue(*args, &block); end
121
+ def return_false_on_aborted_enqueue=(*args, &block); end
122
122
  def skip_after_callbacks_if_terminated; end
123
123
  def skip_after_callbacks_if_terminated=(val); end
124
124
  end
@@ -158,8 +158,8 @@ end
158
158
  class ActiveJob::ConfiguredJob
159
159
  def initialize(job_class, options = T.unsafe(nil)); end
160
160
 
161
- def perform_later(*args); end
162
- def perform_now(*args); end
161
+ def perform_later(*_arg0, &_arg1); end
162
+ def perform_now(*_arg0, &_arg1); end
163
163
  end
164
164
 
165
165
  module ActiveJob::Core
@@ -170,28 +170,32 @@ module ActiveJob::Core
170
170
  def initialize(*arguments); end
171
171
 
172
172
  def arguments; end
173
- def arguments=(_); end
173
+ def arguments=(_arg0); end
174
174
  def deserialize(job_data); end
175
+ def enqueue_error; end
176
+ def enqueue_error=(_arg0); end
175
177
  def enqueued_at; end
176
- def enqueued_at=(_); end
178
+ def enqueued_at=(_arg0); end
177
179
  def exception_executions; end
178
- def exception_executions=(_); end
180
+ def exception_executions=(_arg0); end
179
181
  def executions; end
180
- def executions=(_); end
182
+ def executions=(_arg0); end
181
183
  def job_id; end
182
- def job_id=(_); end
184
+ def job_id=(_arg0); end
183
185
  def locale; end
184
- def locale=(_); end
185
- def priority=(_); end
186
+ def locale=(_arg0); end
187
+ def priority=(_arg0); end
186
188
  def provider_job_id; end
187
- def provider_job_id=(_); end
188
- def queue_name=(_); end
189
+ def provider_job_id=(_arg0); end
190
+ def queue_name=(_arg0); end
189
191
  def scheduled_at; end
190
- def scheduled_at=(_); end
192
+ def scheduled_at=(_arg0); end
191
193
  def serialize; end
192
- def serialized_arguments=(_); end
194
+ def serialized_arguments=(_arg0); end
195
+ def successfully_enqueued=(_arg0); end
196
+ def successfully_enqueued?; end
193
197
  def timezone; end
194
- def timezone=(_); end
198
+ def timezone=(_arg0); end
195
199
 
196
200
  private
197
201
 
@@ -211,6 +215,9 @@ class ActiveJob::DeserializationError < ::StandardError
211
215
  def initialize; end
212
216
  end
213
217
 
218
+ class ActiveJob::EnqueueError < ::StandardError
219
+ end
220
+
214
221
  module ActiveJob::Enqueuing
215
222
  extend(::ActiveSupport::Concern)
216
223
 
@@ -220,7 +227,7 @@ module ActiveJob::Enqueuing
220
227
  end
221
228
 
222
229
  module ActiveJob::Enqueuing::ClassMethods
223
- def perform_later(*args); end
230
+ def perform_later(*_arg0, &_arg1); end
224
231
 
225
232
  private
226
233
 
@@ -253,22 +260,28 @@ module ActiveJob::Execution
253
260
 
254
261
  mixes_in_class_methods(::ActiveJob::Execution::ClassMethods)
255
262
 
256
- def perform(*_); end
263
+ def perform(*_arg0); end
257
264
  def perform_now; end
265
+
266
+ private
267
+
268
+ def _perform_job; end
258
269
  end
259
270
 
260
271
  module ActiveJob::Execution::ClassMethods
261
272
  def execute(job_data); end
262
- def perform_now(*args); end
273
+ def perform_now(*_arg0, &_arg1); end
263
274
  end
264
275
 
265
276
  module ActiveJob::Instrumentation
266
277
  extend(::ActiveSupport::Concern)
267
278
 
279
+ def perform_now; end
268
280
 
269
281
  private
270
282
 
271
- def halted_callback_hook(*_); end
283
+ def _perform_job; end
284
+ def halted_callback_hook(*_arg0); end
272
285
  def instrument(operation, payload = T.unsafe(nil), &block); end
273
286
  end
274
287
 
@@ -293,6 +306,7 @@ end
293
306
  module ActiveJob::Logging
294
307
  extend(::ActiveSupport::Concern)
295
308
 
309
+ def perform_now; end
296
310
 
297
311
  private
298
312
 
@@ -349,7 +363,7 @@ class ActiveJob::QueueAdapters::AsyncAdapter::Scheduler
349
363
  def enqueue_at(job, timestamp, queue_name:); end
350
364
  def executor; end
351
365
  def immediate; end
352
- def immediate=(_); end
366
+ def immediate=(_arg0); end
353
367
  def shutdown(wait: T.unsafe(nil)); end
354
368
  end
355
369
 
@@ -357,28 +371,28 @@ ActiveJob::QueueAdapters::AsyncAdapter::Scheduler::DEFAULT_EXECUTOR_OPTIONS = T.
357
371
 
358
372
  class ActiveJob::QueueAdapters::InlineAdapter
359
373
  def enqueue(job); end
360
- def enqueue_at(*_); end
374
+ def enqueue_at(*_arg0); end
361
375
  end
362
376
 
363
377
  class ActiveJob::QueueAdapters::TestAdapter
364
378
  def at; end
365
- def at=(_); end
379
+ def at=(_arg0); end
366
380
  def enqueue(job); end
367
381
  def enqueue_at(job, timestamp); end
368
382
  def enqueued_jobs; end
369
- def enqueued_jobs=(_); end
383
+ def enqueued_jobs=(_arg0); end
370
384
  def filter; end
371
- def filter=(_); end
385
+ def filter=(_arg0); end
372
386
  def perform_enqueued_at_jobs; end
373
- def perform_enqueued_at_jobs=(_); end
387
+ def perform_enqueued_at_jobs=(_arg0); end
374
388
  def perform_enqueued_jobs; end
375
- def perform_enqueued_jobs=(_); end
389
+ def perform_enqueued_jobs=(_arg0); end
376
390
  def performed_jobs; end
377
- def performed_jobs=(_); end
391
+ def performed_jobs=(_arg0); end
378
392
  def queue; end
379
- def queue=(_); end
393
+ def queue=(_arg0); end
380
394
  def reject; end
381
- def reject=(_); end
395
+ def reject=(_arg0); end
382
396
 
383
397
  private
384
398
 
@@ -459,23 +473,14 @@ class ActiveJob::Serializers::DateSerializer < ::ActiveJob::Serializers::ObjectS
459
473
  private
460
474
 
461
475
  def klass; end
462
-
463
- class << self
464
- def instance; end
465
- end
466
476
  end
467
477
 
468
- class ActiveJob::Serializers::DateTimeSerializer < ::ActiveJob::Serializers::ObjectSerializer
478
+ class ActiveJob::Serializers::DateTimeSerializer < ::ActiveJob::Serializers::TimeObjectSerializer
469
479
  def deserialize(hash); end
470
- def serialize(time); end
471
480
 
472
481
  private
473
482
 
474
483
  def klass; end
475
-
476
- class << self
477
- def instance; end
478
- end
479
484
  end
480
485
 
481
486
  class ActiveJob::Serializers::DurationSerializer < ::ActiveJob::Serializers::ObjectSerializer
@@ -485,10 +490,6 @@ class ActiveJob::Serializers::DurationSerializer < ::ActiveJob::Serializers::Obj
485
490
  private
486
491
 
487
492
  def klass; end
488
-
489
- class << self
490
- def instance; end
491
- end
492
493
  end
493
494
 
494
495
  class ActiveJob::Serializers::ModuleSerializer < ::ActiveJob::Serializers::ObjectSerializer
@@ -498,10 +499,6 @@ class ActiveJob::Serializers::ModuleSerializer < ::ActiveJob::Serializers::Objec
498
499
  private
499
500
 
500
501
  def klass; end
501
-
502
- class << self
503
- def instance; end
504
- end
505
502
  end
506
503
 
507
504
  class ActiveJob::Serializers::ObjectSerializer
@@ -517,10 +514,9 @@ class ActiveJob::Serializers::ObjectSerializer
517
514
  def klass; end
518
515
 
519
516
  class << self
520
- def deserialize(*args, &block); end
521
- def instance; end
522
- def serialize(*args, &block); end
523
- def serialize?(*args, &block); end
517
+ def deserialize(*_arg0, &_arg1); end
518
+ def serialize(*_arg0, &_arg1); end
519
+ def serialize?(*_arg0, &_arg1); end
524
520
  end
525
521
  end
526
522
 
@@ -531,36 +527,28 @@ class ActiveJob::Serializers::SymbolSerializer < ::ActiveJob::Serializers::Objec
531
527
  private
532
528
 
533
529
  def klass; end
530
+ end
534
531
 
535
- class << self
536
- def instance; end
537
- end
532
+ class ActiveJob::Serializers::TimeObjectSerializer < ::ActiveJob::Serializers::ObjectSerializer
533
+ def serialize(time); end
538
534
  end
539
535
 
540
- class ActiveJob::Serializers::TimeSerializer < ::ActiveJob::Serializers::ObjectSerializer
536
+ ActiveJob::Serializers::TimeObjectSerializer::NANO_PRECISION = T.let(T.unsafe(nil), Integer)
537
+
538
+ class ActiveJob::Serializers::TimeSerializer < ::ActiveJob::Serializers::TimeObjectSerializer
541
539
  def deserialize(hash); end
542
- def serialize(time); end
543
540
 
544
541
  private
545
542
 
546
543
  def klass; end
547
-
548
- class << self
549
- def instance; end
550
- end
551
544
  end
552
545
 
553
- class ActiveJob::Serializers::TimeWithZoneSerializer < ::ActiveJob::Serializers::ObjectSerializer
546
+ class ActiveJob::Serializers::TimeWithZoneSerializer < ::ActiveJob::Serializers::TimeObjectSerializer
554
547
  def deserialize(hash); end
555
- def serialize(time); end
556
548
 
557
549
  private
558
550
 
559
551
  def klass; end
560
-
561
- class << self
562
- def instance; end
563
- end
564
552
  end
565
553
 
566
554
  class ActiveJob::TestCase < ::ActiveSupport::TestCase
@@ -568,6 +556,8 @@ class ActiveJob::TestCase < ::ActiveSupport::TestCase
568
556
  end
569
557
 
570
558
  module ActiveJob::TestHelper
559
+ include(::ActiveSupport::Testing::Assertions)
560
+
571
561
  def after_teardown; end
572
562
  def assert_enqueued_jobs(number, only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
573
563
  def assert_enqueued_with(job: T.unsafe(nil), args: T.unsafe(nil), at: T.unsafe(nil), queue: T.unsafe(nil), &block); end
@@ -576,10 +566,10 @@ module ActiveJob::TestHelper
576
566
  def assert_performed_jobs(number, only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
577
567
  def assert_performed_with(job: T.unsafe(nil), args: T.unsafe(nil), at: T.unsafe(nil), queue: T.unsafe(nil), &block); end
578
568
  def before_setup; end
579
- def enqueued_jobs(*args, &block); end
569
+ def enqueued_jobs(*_arg0, &_arg1); end
580
570
  def enqueued_jobs=(arg); end
581
571
  def perform_enqueued_jobs(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), at: T.unsafe(nil), &block); end
582
- def performed_jobs(*args, &block); end
572
+ def performed_jobs(*_arg0, &_arg1); end
583
573
  def performed_jobs=(arg); end
584
574
  def queue_adapter; end
585
575
  def queue_adapter_for_test; end
@@ -597,7 +587,6 @@ module ActiveJob::TestHelper
597
587
  def performed_jobs_with(only: T.unsafe(nil), except: T.unsafe(nil), queue: T.unsafe(nil), &block); end
598
588
  def prepare_args_for_assertion(args); end
599
589
  def queue_adapter_changed_jobs; end
600
- def round_time_arguments(argument); end
601
590
  def validate_option(only: T.unsafe(nil), except: T.unsafe(nil)); end
602
591
  end
603
592
 
@@ -1,6 +1,6 @@
1
1
  # DO NOT EDIT MANUALLY
2
2
  # This is an autogenerated file for types exported from the `activemodel` gem.
3
- # Please instead update this file by running `dev typecheck update`.
3
+ # Please instead update this file by running `bin/tapioca sync`.
4
4
 
5
5
  # typed: true
6
6
 
@@ -15,7 +15,7 @@ module ActiveModel
15
15
  end
16
16
 
17
17
  class ActiveModel::Attribute
18
- def initialize(name, value_before_type_cast, type, original_attribute = T.unsafe(nil)); end
18
+ def initialize(name, value_before_type_cast, type, original_attribute = T.unsafe(nil), value = T.unsafe(nil)); end
19
19
 
20
20
  def ==(other); end
21
21
  def came_from_user?; end
@@ -30,8 +30,10 @@ class ActiveModel::Attribute
30
30
  def initialized?; end
31
31
  def name; end
32
32
  def original_value; end
33
+ def original_value_for_database; end
34
+ def serializable?(&block); end
33
35
  def type; end
34
- def type_cast(*_); end
36
+ def type_cast(*_arg0); end
35
37
  def value; end
36
38
  def value_before_type_cast; end
37
39
  def value_for_database; end
@@ -40,10 +42,6 @@ class ActiveModel::Attribute
40
42
  def with_value_from_database(value); end
41
43
  def with_value_from_user(value); end
42
44
 
43
- protected
44
-
45
- def original_value_for_database; end
46
-
47
45
  private
48
46
 
49
47
  def _original_value_for_database; end
@@ -53,11 +51,11 @@ class ActiveModel::Attribute
53
51
  def original_attribute; end
54
52
 
55
53
  class << self
56
- def from_database(name, value, type); end
57
- def from_user(name, value, type, original_attribute = T.unsafe(nil)); end
54
+ def from_database(name, value_before_type_cast, type, value = T.unsafe(nil)); end
55
+ def from_user(name, value_before_type_cast, type, original_attribute = T.unsafe(nil)); end
58
56
  def null(name); end
59
57
  def uninitialized(name, type); end
60
- def with_cast_value(name, value, type); end
58
+ def with_cast_value(name, value_before_type_cast, type); end
61
59
  end
62
60
  end
63
61
 
@@ -94,7 +92,7 @@ module ActiveModel::AttributeMethods
94
92
  def attribute_missing(match, *args, &block); end
95
93
  def method_missing(method, *args, &block); end
96
94
  def respond_to?(method, include_private_methods = T.unsafe(nil)); end
97
- def respond_to_without_attributes?(*_); end
95
+ def respond_to_without_attributes?(*_arg0); end
98
96
 
99
97
  private
100
98
 
@@ -129,7 +127,7 @@ module ActiveModel::AttributeMethods::ClassMethods
129
127
 
130
128
  def attribute_method_matchers_cache; end
131
129
  def attribute_method_matchers_matching(method_name); end
132
- def define_proxy_call(include_private, code_generator, name, target, *extra); end
130
+ def define_proxy_call(code_generator, name, target, *extra); end
133
131
  def generated_attribute_methods; end
134
132
  def instance_method_already_implemented?(method_name); end
135
133
  end
@@ -151,17 +149,17 @@ class ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatcher::Attri
151
149
  def target=(_); end
152
150
 
153
151
  class << self
154
- def [](*_); end
152
+ def [](*_arg0); end
155
153
  def inspect; end
156
154
  def members; end
157
- def new(*_); end
155
+ def new(*_arg0); end
158
156
  end
159
157
  end
160
158
 
161
159
  ActiveModel::AttributeMethods::NAME_COMPILABLE_REGEXP = T.let(T.unsafe(nil), Regexp)
162
160
 
163
161
  class ActiveModel::AttributeMutationTracker
164
- def initialize(attributes, forced_changes = T.unsafe(nil)); end
162
+ def initialize(attributes); end
165
163
 
166
164
  def any_changes?; end
167
165
  def change_to_attribute(attr_name); end
@@ -193,9 +191,9 @@ class ActiveModel::AttributeSet
193
191
  def []=(name, value); end
194
192
  def accessed; end
195
193
  def deep_dup; end
196
- def each_value(*args, &block); end
197
- def except(*args, &block); end
198
- def fetch(*args, &block); end
194
+ def each_value(*_arg0, &_arg1); end
195
+ def except(*_arg0, &_arg1); end
196
+ def fetch(*_arg0, &_arg1); end
199
197
  def fetch_value(name, &block); end
200
198
  def freeze; end
201
199
  def key?(name); end
@@ -215,9 +213,9 @@ class ActiveModel::AttributeSet
215
213
 
216
214
  private
217
215
 
216
+ def default_attribute(name); end
218
217
  def initialize_clone(_); end
219
218
  def initialize_dup(_); end
220
- def initialized_attributes; end
221
219
  end
222
220
 
223
221
  class ActiveModel::AttributeSet::Builder
@@ -246,7 +244,7 @@ module ActiveModel::Attributes
246
244
 
247
245
  mixes_in_class_methods(::ActiveModel::Attributes::ClassMethods)
248
246
 
249
- def initialize(*_); end
247
+ def initialize(*_arg0); end
250
248
 
251
249
  def attribute_names; end
252
250
  def attributes; end
@@ -254,14 +252,14 @@ module ActiveModel::Attributes
254
252
 
255
253
  private
256
254
 
255
+ def _write_attribute(attr_name, value); end
257
256
  def attribute(attr_name); end
258
- def attribute=(attribute_name, value); end
257
+ def attribute=(attr_name, value); end
259
258
  def initialize_dup(other); end
260
- def write_attribute(attr_name, value); end
261
259
  end
262
260
 
263
261
  module ActiveModel::Attributes::ClassMethods
264
- def attribute(name, type = T.unsafe(nil), **options); end
262
+ def attribute(name, cast_type = T.unsafe(nil), default: T.unsafe(nil), **options); end
265
263
  def attribute_names; end
266
264
 
267
265
  private
@@ -370,6 +368,10 @@ class ActiveModel::EachValidator < ::ActiveModel::Validator
370
368
  def check_validity!; end
371
369
  def validate(record); end
372
370
  def validate_each(record, attribute, value); end
371
+
372
+ private
373
+
374
+ def prepare_value_for_validation(value, record, attr_name); end
373
375
  end
374
376
 
375
377
  class ActiveModel::Error
@@ -379,11 +381,12 @@ class ActiveModel::Error
379
381
  def attribute; end
380
382
  def base; end
381
383
  def detail; end
384
+ def details; end
382
385
  def eql?(other); end
383
386
  def full_message; end
384
387
  def hash; end
385
388
  def i18n_customize_full_message; end
386
- def i18n_customize_full_message=(_); end
389
+ def i18n_customize_full_message=(_arg0); end
387
390
  def i18n_customize_full_message?; end
388
391
  def inspect; end
389
392
  def match?(attribute, type = T.unsafe(nil), **options); end
@@ -402,7 +405,7 @@ class ActiveModel::Error
402
405
  def initialize_dup(other); end
403
406
 
404
407
  class << self
405
- def full_message(attribute, message, base_class); end
408
+ def full_message(attribute, message, base); end
406
409
  def generate_message(attribute, type, base, options); end
407
410
  def i18n_customize_full_message; end
408
411
  def i18n_customize_full_message=(value); end
@@ -483,7 +486,7 @@ module ActiveModel::ForbiddenAttributesProtection
483
486
  end
484
487
 
485
488
  class ActiveModel::ForcedMutationTracker < ::ActiveModel::AttributeMutationTracker
486
- def initialize(attributes, forced_changes = T.unsafe(nil)); end
489
+ def initialize(attributes); end
487
490
 
488
491
  def change_to_attribute(attr_name); end
489
492
  def changed_in_place?(attr_name); end
@@ -508,15 +511,14 @@ class ActiveModel::LazyAttributeHash
508
511
  def [](key); end
509
512
  def []=(key, value); end
510
513
  def deep_dup; end
511
- def each_key(*args, &block); end
512
- def each_value(*args, &block); end
513
- def except(*args, &block); end
514
- def fetch(*args, &block); end
514
+ def each_key(&block); end
515
+ def each_value(*_arg0, &_arg1); end
516
+ def except(*_arg0, &_arg1); end
517
+ def fetch(*_arg0, &_arg1); end
515
518
  def key?(key); end
516
519
  def marshal_dump; end
517
520
  def marshal_load(values); end
518
- def select; end
519
- def transform_values(*args, &block); end
521
+ def transform_values(*_arg0, &_arg1); end
520
522
 
521
523
  protected
522
524
 
@@ -533,6 +535,26 @@ class ActiveModel::LazyAttributeHash
533
535
  def values; end
534
536
  end
535
537
 
538
+ class ActiveModel::LazyAttributeSet < ::ActiveModel::AttributeSet
539
+ def initialize(values, types, additional_types, default_attributes, attributes = T.unsafe(nil)); end
540
+
541
+ def fetch_value(name, &block); end
542
+ def key?(name); end
543
+ def keys; end
544
+
545
+ protected
546
+
547
+ def attributes; end
548
+
549
+ private
550
+
551
+ def additional_types; end
552
+ def default_attribute(name, value_present = T.unsafe(nil), value = T.unsafe(nil)); end
553
+ def default_attributes; end
554
+ def types; end
555
+ def values; end
556
+ end
557
+
536
558
  module ActiveModel::Lint
537
559
  end
538
560
 
@@ -571,29 +593,39 @@ end
571
593
  class ActiveModel::Name
572
594
  include(::Comparable)
573
595
 
574
- def initialize(klass, namespace = T.unsafe(nil), name = T.unsafe(nil)); end
596
+ def initialize(klass, namespace = T.unsafe(nil), name = T.unsafe(nil), locale = T.unsafe(nil)); end
575
597
 
576
- def !~(*args, &block); end
577
- def <=>(*args, &block); end
598
+ def !~(*_arg0, &_arg1); end
599
+ def <=>(*_arg0, &_arg1); end
578
600
  def ==(arg); end
579
601
  def ===(arg); end
580
- def =~(*args, &block); end
581
- def as_json(*args, &block); end
602
+ def =~(*_arg0, &_arg1); end
603
+ def as_json(*_arg0, &_arg1); end
582
604
  def cache_key; end
583
605
  def collection; end
606
+ def collection=(_arg0); end
584
607
  def element; end
585
- def eql?(*args, &block); end
608
+ def element=(_arg0); end
609
+ def eql?(*_arg0, &_arg1); end
586
610
  def human(options = T.unsafe(nil)); end
587
611
  def i18n_key; end
588
- def match?(*args, &block); end
612
+ def i18n_key=(_arg0); end
613
+ def match?(*_arg0, &_arg1); end
589
614
  def name; end
615
+ def name=(_arg0); end
590
616
  def param_key; end
617
+ def param_key=(_arg0); end
591
618
  def plural; end
619
+ def plural=(_arg0); end
592
620
  def route_key; end
621
+ def route_key=(_arg0); end
593
622
  def singular; end
623
+ def singular=(_arg0); end
594
624
  def singular_route_key; end
595
- def to_s(*args, &block); end
596
- def to_str(*args, &block); end
625
+ def singular_route_key=(_arg0); end
626
+ def to_s(*_arg0, &_arg1); end
627
+ def to_str(*_arg0, &_arg1); end
628
+ def uncountable?; end
597
629
 
598
630
  private
599
631
 
@@ -633,16 +665,12 @@ class ActiveModel::NullMutationTracker
633
665
 
634
666
  def any_changes?; end
635
667
  def change_to_attribute(attr_name); end
636
- def changed?(attr_name, **_); end
668
+ def changed?(attr_name, **_arg1); end
637
669
  def changed_attribute_names; end
638
670
  def changed_in_place?(attr_name); end
639
671
  def changed_values; end
640
672
  def changes; end
641
673
  def original_value(attr_name); end
642
-
643
- class << self
644
- def instance; end
645
- end
646
674
  end
647
675
 
648
676
  class ActiveModel::Railtie < ::Rails::Railtie
@@ -658,7 +686,7 @@ module ActiveModel::SecurePassword
658
686
 
659
687
  class << self
660
688
  def min_cost; end
661
- def min_cost=(_); end
689
+ def min_cost=(_arg0); end
662
690
  end
663
691
  end
664
692
 
@@ -673,12 +701,13 @@ end
673
701
  ActiveModel::SecurePassword::MAX_PASSWORD_LENGTH_ALLOWED = T.let(T.unsafe(nil), Integer)
674
702
 
675
703
  module ActiveModel::Serialization
676
- def read_attribute_for_serialization(*_); end
704
+ def read_attribute_for_serialization(*_arg0); end
677
705
  def serializable_hash(options = T.unsafe(nil)); end
678
706
 
679
707
  private
680
708
 
681
709
  def serializable_add_includes(options = T.unsafe(nil)); end
710
+ def serializable_attributes(attribute_names); end
682
711
  end
683
712
 
684
713
  module ActiveModel::Serializers
@@ -712,7 +741,7 @@ module ActiveModel::Type
712
741
  def lookup(*args, **kwargs); end
713
742
  def register(type_name, klass = T.unsafe(nil), **options, &block); end
714
743
  def registry; end
715
- def registry=(_); end
744
+ def registry=(_arg0); end
716
745
  end
717
746
  end
718
747
 
@@ -753,6 +782,7 @@ ActiveModel::Type::Boolean::FALSE_VALUES = T.let(T.unsafe(nil), Set)
753
782
 
754
783
  class ActiveModel::Type::Date < ::ActiveModel::Type::Value
755
784
  include(::ActiveModel::Type::Helpers::Timezone)
785
+ include(::ActiveModel::Type::Helpers::AcceptsMultiparameterTime::InstanceMethods)
756
786
 
757
787
  def type; end
758
788
  def type_cast_for_schema(value); end
@@ -763,7 +793,7 @@ class ActiveModel::Type::Date < ::ActiveModel::Type::Value
763
793
  def fallback_string_to_date(string); end
764
794
  def fast_string_to_date(string); end
765
795
  def new_date(year, mon, mday); end
766
- def value_from_multiparameter_assignment(*_); end
796
+ def value_from_multiparameter_assignment(*_arg0); end
767
797
  end
768
798
 
769
799
  ActiveModel::Type::Date::ISO_DATE = T.let(T.unsafe(nil), Regexp)
@@ -771,6 +801,7 @@ ActiveModel::Type::Date::ISO_DATE = T.let(T.unsafe(nil), Regexp)
771
801
  class ActiveModel::Type::DateTime < ::ActiveModel::Type::Value
772
802
  include(::ActiveModel::Type::Helpers::Timezone)
773
803
  include(::ActiveModel::Type::Helpers::TimeValue)
804
+ include(::ActiveModel::Type::Helpers::AcceptsMultiparameterTime::InstanceMethods)
774
805
 
775
806
  def type; end
776
807
 
@@ -816,6 +847,13 @@ class ActiveModel::Type::Helpers::AcceptsMultiparameterTime < ::Module
816
847
  def initialize(defaults: T.unsafe(nil)); end
817
848
  end
818
849
 
850
+ module ActiveModel::Type::Helpers::AcceptsMultiparameterTime::InstanceMethods
851
+ def assert_valid_value(value); end
852
+ def cast(value); end
853
+ def serialize(value); end
854
+ def value_constructed_by_mass_assignment?(value); end
855
+ end
856
+
819
857
  module ActiveModel::Type::Helpers::Mutable
820
858
  def cast(value); end
821
859
  def changed_in_place?(raw_old_value, new_value); end
@@ -825,7 +863,6 @@ module ActiveModel::Type::Helpers::Numeric
825
863
  def cast(value); end
826
864
  def changed?(old_value, _new_value, new_value_before_type_cast); end
827
865
  def serialize(value); end
828
- def unchecked_serialize(value); end
829
866
 
830
867
  private
831
868
 
@@ -853,6 +890,8 @@ module ActiveModel::Type::Helpers::Timezone
853
890
  end
854
891
 
855
892
  class ActiveModel::Type::ImmutableString < ::ActiveModel::Type::Value
893
+ def initialize(**args); end
894
+
856
895
  def serialize(value); end
857
896
  def type; end
858
897
 
@@ -864,7 +903,7 @@ end
864
903
  class ActiveModel::Type::Integer < ::ActiveModel::Type::Value
865
904
  include(::ActiveModel::Type::Helpers::Numeric)
866
905
 
867
- def initialize(**_); end
906
+ def initialize(**_arg0); end
868
907
 
869
908
  def deserialize(value); end
870
909
  def serializable?(value); end
@@ -885,7 +924,7 @@ end
885
924
  ActiveModel::Type::Integer::DEFAULT_LIMIT = T.let(T.unsafe(nil), Integer)
886
925
 
887
926
  class ActiveModel::Type::Registration
888
- def initialize(name, block, **_); end
927
+ def initialize(name, block, **_arg2); end
889
928
 
890
929
  def call(_registry, *args, **kwargs); end
891
930
  def matches?(type_name, *args, **kwargs); end
@@ -905,12 +944,14 @@ class ActiveModel::Type::Registry
905
944
  private
906
945
 
907
946
  def find_registration(symbol, *args, **kwargs); end
947
+ def initialize_dup(other); end
908
948
  def registration_klass; end
909
949
  def registrations; end
910
950
  end
911
951
 
912
952
  class ActiveModel::Type::String < ::ActiveModel::Type::ImmutableString
913
953
  def changed_in_place?(raw_old_value, new_value); end
954
+ def to_immutable_string; end
914
955
 
915
956
  private
916
957
 
@@ -920,6 +961,7 @@ end
920
961
  class ActiveModel::Type::Time < ::ActiveModel::Type::Value
921
962
  include(::ActiveModel::Type::Helpers::Timezone)
922
963
  include(::ActiveModel::Type::Helpers::TimeValue)
964
+ include(::ActiveModel::Type::Helpers::AcceptsMultiparameterTime::InstanceMethods)
923
965
 
924
966
  def type; end
925
967
  def user_input_in_time_zone(value); end
@@ -950,7 +992,6 @@ class ActiveModel::Type::Value
950
992
  def serialize(value); end
951
993
  def type; end
952
994
  def type_cast_for_schema(value); end
953
- def unchecked_serialize(value); end
954
995
  def value_constructed_by_mass_assignment?(_value); end
955
996
 
956
997
  private
@@ -994,7 +1035,7 @@ module ActiveModel::Validations
994
1035
 
995
1036
  def errors; end
996
1037
  def invalid?(context = T.unsafe(nil)); end
997
- def read_attribute_for_validation(*_); end
1038
+ def read_attribute_for_validation(*_arg0); end
998
1039
  def valid?(context = T.unsafe(nil)); end
999
1040
  def validate(context = T.unsafe(nil)); end
1000
1041
  def validate!(context = T.unsafe(nil)); end
@@ -1051,6 +1092,10 @@ end
1051
1092
  module ActiveModel::Validations::Callbacks::ClassMethods
1052
1093
  def after_validation(*args, &block); end
1053
1094
  def before_validation(*args, &block); end
1095
+
1096
+ private
1097
+
1098
+ def set_options_for_callback(options); end
1054
1099
  end
1055
1100
 
1056
1101
  module ActiveModel::Validations::ClassMethods
@@ -1165,9 +1210,11 @@ class ActiveModel::Validations::NumericalityValidator < ::ActiveModel::EachValid
1165
1210
  def is_hexadecimal_literal?(raw_value); end
1166
1211
  def is_integer?(raw_value); end
1167
1212
  def is_number?(raw_value, precision, scale); end
1168
- def parse_as_number(raw_value, precision, scale); end
1213
+ def parse_as_number(raw_value, precision, scale, option = T.unsafe(nil)); end
1169
1214
  def parse_float(raw_value, precision, scale); end
1215
+ def prepare_value_for_validation(value, record, attr_name); end
1170
1216
  def record_attribute_changed_in_place?(record, attr_name); end
1217
+ def round(raw_value, scale); end
1171
1218
  end
1172
1219
 
1173
1220
  ActiveModel::Validations::NumericalityValidator::CHECKS = T.let(T.unsafe(nil), Hash)