packwerk 1.1.0 → 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 (124) 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 +17 -16
  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/application_load_paths.rb +3 -2
  12. data/lib/packwerk/application_validator.rb +83 -67
  13. data/lib/packwerk/association_inspector.rb +23 -11
  14. data/lib/packwerk/checker.rb +4 -7
  15. data/lib/packwerk/cli.rb +32 -100
  16. data/lib/packwerk/configuration.rb +10 -2
  17. data/lib/packwerk/const_node_inspector.rb +13 -14
  18. data/lib/packwerk/constant_discovery.rb +2 -0
  19. data/lib/packwerk/constant_name_inspector.rb +0 -1
  20. data/lib/packwerk/dependency_checker.rb +12 -17
  21. data/lib/packwerk/deprecated_references.rb +7 -9
  22. data/lib/packwerk/file_processor.rb +0 -4
  23. data/lib/packwerk/formatters/offenses_formatter.rb +43 -0
  24. data/lib/packwerk/formatters/progress_formatter.rb +9 -4
  25. data/lib/packwerk/generators/configuration_file.rb +0 -1
  26. data/lib/packwerk/inflector.rb +0 -2
  27. data/lib/packwerk/node.rb +9 -2
  28. data/lib/packwerk/node_processor.rb +15 -32
  29. data/lib/packwerk/node_processor_factory.rb +0 -5
  30. data/lib/packwerk/node_visitor.rb +1 -4
  31. data/lib/packwerk/offense.rb +2 -8
  32. data/lib/packwerk/offense_collection.rb +84 -0
  33. data/lib/packwerk/offenses_formatter.rb +15 -0
  34. data/lib/packwerk/output_style.rb +20 -0
  35. data/lib/packwerk/output_styles/coloured.rb +29 -0
  36. data/lib/packwerk/output_styles/plain.rb +26 -0
  37. data/lib/packwerk/package.rb +8 -0
  38. data/lib/packwerk/package_set.rb +2 -3
  39. data/lib/packwerk/parse_run.rb +104 -0
  40. data/lib/packwerk/parsed_constant_definitions.rb +2 -4
  41. data/lib/packwerk/parsers/erb.rb +0 -2
  42. data/lib/packwerk/parsers/factory.rb +1 -3
  43. data/lib/packwerk/parsers.rb +0 -2
  44. data/lib/packwerk/privacy_checker.rb +22 -17
  45. data/lib/packwerk/reference_extractor.rb +0 -8
  46. data/lib/packwerk/reference_offense.rb +49 -0
  47. data/lib/packwerk/result.rb +9 -0
  48. data/lib/packwerk/run_context.rb +4 -21
  49. data/lib/packwerk/sanity_checker.rb +1 -3
  50. data/lib/packwerk/spring_command.rb +1 -1
  51. data/lib/packwerk/version.rb +1 -1
  52. data/lib/packwerk/violation_type.rb +0 -2
  53. data/lib/packwerk.rb +73 -34
  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 -61
  111. data/lib/packwerk/cache_deprecated_references.rb +0 -47
  112. data/lib/packwerk/checking_deprecated_references.rb +0 -40
  113. data/lib/packwerk/commands/detect_stale_violations_command.rb +0 -63
  114. data/lib/packwerk/commands/offense_progress_marker.rb +0 -24
  115. data/lib/packwerk/detect_stale_deprecated_references.rb +0 -14
  116. data/lib/packwerk/output_styles.rb +0 -41
  117. data/lib/packwerk/reference_lister.rb +0 -23
  118. data/lib/packwerk/updating_deprecated_references.rb +0 -14
  119. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +0 -8
  120. data/sorbet/rbi/gems/marcel@0.3.3.rbi +0 -30
  121. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +0 -47
  122. data/sorbet/rbi/gems/parlour@4.0.1.rbi +0 -561
  123. data/sorbet/rbi/gems/spoom@1.0.4.rbi +0 -418
  124. 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 `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)