packwerk 3.2.3 → 3.3.1

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/exe/packwerk +0 -4
  3. data/lib/packwerk/application_validator.rb +11 -10
  4. data/lib/packwerk/association_inspector.rb +21 -32
  5. data/lib/packwerk/cache.rb +43 -36
  6. data/lib/packwerk/checker.rb +24 -26
  7. data/lib/packwerk/cli.rb +13 -20
  8. data/lib/packwerk/commands/base_command.rb +20 -26
  9. data/lib/packwerk/commands/check_command.rb +8 -8
  10. data/lib/packwerk/commands/help_command.rb +3 -4
  11. data/lib/packwerk/commands/init_command.rb +2 -3
  12. data/lib/packwerk/commands/lazy_loaded_entry.rb +5 -7
  13. data/lib/packwerk/commands/update_todo_command.rb +3 -3
  14. data/lib/packwerk/commands/uses_parse_run.rb +20 -26
  15. data/lib/packwerk/commands/validate_command.rb +6 -7
  16. data/lib/packwerk/commands/version_command.rb +2 -3
  17. data/lib/packwerk/commands.rb +5 -8
  18. data/lib/packwerk/configuration.rb +29 -43
  19. data/lib/packwerk/const_node_inspector.rb +11 -15
  20. data/lib/packwerk/constant_context.rb +0 -2
  21. data/lib/packwerk/constant_discovery.rb +3 -16
  22. data/lib/packwerk/constant_name_inspector.rb +4 -11
  23. data/lib/packwerk/extension_loader.rb +1 -2
  24. data/lib/packwerk/file_processor.rb +20 -25
  25. data/lib/packwerk/files_for_processing.rb +13 -29
  26. data/lib/packwerk/formatters/default_offenses_formatter.rb +14 -12
  27. data/lib/packwerk/formatters/progress_formatter.rb +10 -12
  28. data/lib/packwerk/generators/configuration_file.rb +5 -9
  29. data/lib/packwerk/generators/root_package.rb +3 -7
  30. data/lib/packwerk/graph.rb +1 -7
  31. data/lib/packwerk/node_helpers.rb +32 -38
  32. data/lib/packwerk/node_processor.rb +2 -14
  33. data/lib/packwerk/node_processor_factory.rb +13 -7
  34. data/lib/packwerk/node_visitor.rb +2 -10
  35. data/lib/packwerk/offense.rb +6 -12
  36. data/lib/packwerk/offense_collection.rb +22 -35
  37. data/lib/packwerk/offenses_formatter.rb +27 -34
  38. data/lib/packwerk/output_style.rb +10 -11
  39. data/lib/packwerk/output_styles/coloured.rb +6 -4
  40. data/lib/packwerk/output_styles/plain.rb +6 -4
  41. data/lib/packwerk/package.rb +15 -16
  42. data/lib/packwerk/package_set.rb +15 -25
  43. data/lib/packwerk/package_todo.rb +21 -30
  44. data/lib/packwerk/parse_run.rb +10 -37
  45. data/lib/packwerk/parsed_constant_definitions.rb +10 -24
  46. data/lib/packwerk/parsers/erb.rb +11 -22
  47. data/lib/packwerk/parsers/factory.rb +9 -9
  48. data/lib/packwerk/parsers/parser_interface.rb +5 -10
  49. data/lib/packwerk/parsers/ruby.rb +9 -14
  50. data/lib/packwerk/parsers.rb +2 -4
  51. data/lib/packwerk/rails_load_paths.rb +6 -11
  52. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +10 -15
  53. data/lib/packwerk/reference_checking/reference_checker.rb +2 -8
  54. data/lib/packwerk/reference_extractor.rb +22 -55
  55. data/lib/packwerk/reference_offense.rb +5 -15
  56. data/lib/packwerk/run_context.rb +28 -39
  57. data/lib/packwerk/spring_command.rb +4 -7
  58. data/lib/packwerk/validator/result.rb +12 -5
  59. data/lib/packwerk/validator.rb +23 -33
  60. data/lib/packwerk/validators/dependency_validator.rb +9 -10
  61. data/lib/packwerk/version.rb +1 -1
  62. data/lib/packwerk.rb +0 -1
  63. metadata +15 -76
  64. data/lib/packwerk/disable_sorbet.rb +0 -41
  65. data/sorbet/config +0 -4
  66. data/sorbet/rbi/gems/actionpack@7.0.8.7.rbi +0 -19338
  67. data/sorbet/rbi/gems/actionview@7.0.8.7.rbi +0 -15492
  68. data/sorbet/rbi/gems/activesupport@7.0.8.7.rbi +0 -18283
  69. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -584
  70. data/sorbet/rbi/gems/better_html@2.1.1.rbi +0 -529
  71. data/sorbet/rbi/gems/builder@3.3.0.rbi +0 -8
  72. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -36
  73. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +0 -11656
  74. data/sorbet/rbi/gems/constant_resolver@0.3.0.rbi +0 -99
  75. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -622
  76. data/sorbet/rbi/gems/erubi@1.13.1.rbi +0 -154
  77. data/sorbet/rbi/gems/i18n@1.14.7.rbi +0 -2358
  78. data/sorbet/rbi/gems/json@2.7.2.rbi +0 -1561
  79. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  80. data/sorbet/rbi/gems/loofah@2.24.0.rbi +0 -1104
  81. data/sorbet/rbi/gems/m@1.6.0.rbi +0 -257
  82. data/sorbet/rbi/gems/method_source@1.1.0.rbi +0 -303
  83. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +0 -98
  84. data/sorbet/rbi/gems/minitest@5.25.4.rbi +0 -2229
  85. data/sorbet/rbi/gems/mocha@2.5.0.rbi +0 -3961
  86. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -158
  87. data/sorbet/rbi/gems/nokogiri@1.18.4.rbi +0 -8204
  88. data/sorbet/rbi/gems/parallel@1.25.1.rbi +0 -286
  89. data/sorbet/rbi/gems/parser@3.3.3.0.rbi +0 -7320
  90. data/sorbet/rbi/gems/prism@0.27.0.rbi +0 -36983
  91. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -161
  92. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +0 -736
  93. data/sorbet/rbi/gems/rack@2.2.13.rbi +0 -5633
  94. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +0 -754
  95. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +0 -764
  96. data/sorbet/rbi/gems/railties@7.0.8.7.rbi +0 -3517
  97. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -402
  98. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -3039
  99. data/sorbet/rbi/gems/rbi@0.1.12.rbi +0 -3071
  100. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +0 -3771
  101. data/sorbet/rbi/gems/rexml@3.3.9.rbi +0 -4857
  102. data/sorbet/rbi/gems/rubocop-ast@1.31.3.rbi +0 -7089
  103. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +0 -2967
  104. data/sorbet/rbi/gems/rubocop-shopify@2.9.0.rbi +0 -8
  105. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +0 -975
  106. data/sorbet/rbi/gems/rubocop@1.64.1.rbi +0 -58089
  107. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1317
  108. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -8
  109. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +0 -474
  110. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4420
  111. data/sorbet/rbi/gems/spring@4.0.0.rbi +0 -411
  112. data/sorbet/rbi/gems/tapioca@0.13.3.rbi +0 -3524
  113. data/sorbet/rbi/gems/thor@1.3.1.rbi +0 -4351
  114. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5917
  115. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  116. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +0 -428
  117. data/sorbet/rbi/gems/yard@0.9.36.rbi +0 -18333
  118. data/sorbet/rbi/gems/zeitwerk@2.6.4.rbi +0 -934
  119. data/sorbet/rbi/shims/minitest/test.rb +0 -8
  120. data/sorbet/rbi/shims/packwerk/reference.rbi +0 -33
  121. data/sorbet/rbi/shims/packwerk/unresolved_reference.rbi +0 -33
  122. data/sorbet/rbi/shims/parser.rbi +0 -13
  123. data/sorbet/rbi/shims/psych.rbi +0 -5
  124. data/sorbet/tapioca/require.rb +0 -25
@@ -1,99 +0,0 @@
1
- # typed: true
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This is an autogenerated file for types exported from the `constant_resolver` gem.
5
- # Please instead update this file by running `bin/tapioca gem constant_resolver`.
6
-
7
- # Get information about (partially qualified) constants without loading the application code.
8
- # We infer the fully qualified name and the filepath.
9
- #
10
- # The implementation makes a few assumptions about the code base:
11
- # - `Something::SomeOtherThing` is defined in a path of either `something/some_other_thing.rb` or `something.rb`,
12
- # relative to the load path. Constants that have their own file do not have all-uppercase names like MAGIC_NUMBER or
13
- # all-uppercase parts like SomeID. Rails' `zeitwerk` autoloader makes the same assumption.
14
- # - It is OK to not always infer the exact file defining the constant. For example, when a constant is inherited, we
15
- # have no way of inferring the file it is defined in. You could argue though that inheritance means that another
16
- # constant with the same name exists in the inheriting class, and this view is sufficient for all our use cases.
17
- #
18
- # source://constant_resolver//lib/constant_resolver/version.rb#3
19
- class ConstantResolver
20
- # @example usage in a Rails app
21
- # config = Rails.application.config
22
- # load_paths = (config.eager_load_paths + config.autoload_paths + config.autoload_once_paths)
23
- # .map { |p| Pathname.new(p).relative_path_from(Rails.root).to_s }
24
- # ConstantResolver.new(
25
- # root_path: Rails.root.to_s,
26
- # load_paths: load_paths
27
- # )
28
- # @param root_path [String] The root path of the application to analyze
29
- # @param load_paths [Array<String>] The autoload paths of the application.
30
- # @param exclude [Array<String>] Paths to exclude to scan for constants.
31
- # @param inflector [Object] Any object that implements a `camelize` function.
32
- # @return [ConstantResolver] a new instance of ConstantResolver
33
- #
34
- # source://constant_resolver//lib/constant_resolver.rb#46
35
- def initialize(root_path:, load_paths:, exclude: T.unsafe(nil), inflector: T.unsafe(nil)); end
36
-
37
- # @api private
38
- #
39
- # source://constant_resolver//lib/constant_resolver.rb#122
40
- def config; end
41
-
42
- # Maps constant names to file paths.
43
- #
44
- # @return [Hash<String, String>]
45
- #
46
- # source://constant_resolver//lib/constant_resolver.rb#78
47
- def file_map; end
48
-
49
- # Resolve a constant via its name.
50
- # If the name is partially qualified, we need the current namespace path to correctly infer its full name
51
- #
52
- # @param const_name [String] The constant's name, fully or partially qualified.
53
- # @param current_namespace_path [Array<String>] (optional) The namespace of the context in which the constant is
54
- # used, e.g. ["Apps", "Models"] for `Apps::Models`. Defaults to [] which means top level.
55
- # @return [ConstantResolver::ConstantContext]
56
- #
57
- # source://constant_resolver//lib/constant_resolver.rb#63
58
- def resolve(const_name, current_namespace_path: T.unsafe(nil)); end
59
-
60
- private
61
-
62
- # @return [Boolean]
63
- #
64
- # source://constant_resolver//lib/constant_resolver.rb#131
65
- def allowed?(path); end
66
-
67
- # source://constant_resolver//lib/constant_resolver.rb#144
68
- def ambiguous_constant_message(const_name, paths); end
69
-
70
- # source://constant_resolver//lib/constant_resolver.rb#135
71
- def coerce_load_paths(load_paths); end
72
-
73
- # source://constant_resolver//lib/constant_resolver.rb#151
74
- def glob_path(path); end
75
-
76
- # source://constant_resolver//lib/constant_resolver.rb#155
77
- def resolve_constant(const_name, current_namespace_path, original_name: T.unsafe(nil)); end
78
-
79
- # source://constant_resolver//lib/constant_resolver.rb#168
80
- def resolve_traversing_namespace_path(const_name, current_namespace_path); end
81
- end
82
-
83
- # source://constant_resolver//lib/constant_resolver.rb#19
84
- class ConstantResolver::ConstantContext < ::Struct; end
85
-
86
- # source://constant_resolver//lib/constant_resolver.rb#21
87
- class ConstantResolver::DefaultInflector
88
- # source://constant_resolver//lib/constant_resolver.rb#22
89
- def camelize(string); end
90
- end
91
-
92
- # source://constant_resolver//lib/constant_resolver.rb#18
93
- class ConstantResolver::Error < ::StandardError; end
94
-
95
- # source://constant_resolver//lib/constant_resolver.rb#16
96
- ConstantResolver::RUBY_FILES_GLOB = T.let(T.unsafe(nil), String)
97
-
98
- # source://constant_resolver//lib/constant_resolver/version.rb#4
99
- ConstantResolver::VERSION = T.let(T.unsafe(nil), String)