packwerk 2.2.0 → 2.2.2

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 (188) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +29 -20
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +48 -19
  5. data/Gemfile +7 -2
  6. data/Gemfile.lock +202 -175
  7. data/README.md +1 -1
  8. data/RESOLVING_VIOLATIONS.md +81 -0
  9. data/Rakefile +1 -1
  10. data/USAGE.md +14 -5
  11. data/bin/m +1 -1
  12. data/bin/rake +1 -1
  13. data/bin/rubocop +1 -1
  14. data/bin/srb +1 -1
  15. data/bin/tapioca +1 -1
  16. data/gemfiles/Gemfile-rails-6-0 +1 -1
  17. data/gemfiles/Gemfile-rails-6-1 +22 -0
  18. data/lib/packwerk/application_load_paths.rb +1 -1
  19. data/lib/packwerk/application_validator.rb +7 -6
  20. data/lib/packwerk/association_inspector.rb +17 -15
  21. data/lib/packwerk/cache.rb +36 -29
  22. data/lib/packwerk/cli.rb +24 -20
  23. data/lib/packwerk/const_node_inspector.rb +8 -7
  24. data/lib/packwerk/constant_name_inspector.rb +2 -2
  25. data/lib/packwerk/deprecated_references.rb +40 -20
  26. data/lib/packwerk/file_processor.rb +14 -14
  27. data/lib/packwerk/files_for_processing.rb +27 -31
  28. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  29. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  30. data/lib/packwerk/node.rb +1 -294
  31. data/lib/packwerk/node_helpers.rb +335 -0
  32. data/lib/packwerk/node_processor.rb +6 -5
  33. data/lib/packwerk/node_processor_factory.rb +3 -3
  34. data/lib/packwerk/node_visitor.rb +1 -1
  35. data/lib/packwerk/offense_collection.rb +27 -8
  36. data/lib/packwerk/offenses_formatter.rb +2 -2
  37. data/lib/packwerk/package.rb +3 -0
  38. data/lib/packwerk/package_set.rb +2 -0
  39. data/lib/packwerk/parse_run.rb +29 -20
  40. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  41. data/lib/packwerk/parsers/erb.rb +3 -3
  42. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  43. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  44. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  45. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  46. data/lib/packwerk/reference_extractor.rb +51 -48
  47. data/lib/packwerk/reference_offense.rb +3 -27
  48. data/lib/packwerk/run_context.rb +9 -8
  49. data/lib/packwerk/spring_command.rb +1 -1
  50. data/lib/packwerk/version.rb +1 -1
  51. data/lib/packwerk.rb +1 -0
  52. data/packwerk.gemspec +5 -12
  53. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  54. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  55. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  56. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  57. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  58. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  59. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  60. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  61. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  62. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  63. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  64. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  65. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  66. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  67. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  68. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  69. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  70. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  71. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  72. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  73. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  74. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  75. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  76. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  77. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  78. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  79. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  80. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  81. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  82. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  83. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  84. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  85. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  86. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  87. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  88. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  89. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  90. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  91. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  92. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  93. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  94. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  95. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  96. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  97. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  98. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  99. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  100. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  101. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  102. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  103. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  104. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  105. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  106. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  107. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  108. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  109. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  110. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  111. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  112. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  113. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  114. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  115. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  116. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  117. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  118. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  119. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  120. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  121. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  122. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  123. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  124. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  125. data/sorbet/rbi/shims/psych.rbi +5 -0
  126. data/sorbet/tapioca/require.rb +2 -3
  127. metadata +91 -146
  128. data/.github/probots.yml +0 -2
  129. data/library.yml +0 -6
  130. data/service.yml +0 -1
  131. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  132. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  133. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  134. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  135. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  136. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  137. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  138. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  139. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  140. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  141. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  142. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  143. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  144. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  145. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  146. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  147. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  148. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  149. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  150. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  151. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  152. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  153. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  154. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  155. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  156. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  157. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  158. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  159. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  160. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  161. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  162. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  163. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  164. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  165. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  166. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  167. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  168. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  169. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  170. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  171. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  172. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  173. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  177. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  178. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  179. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  180. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  181. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  182. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  183. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  184. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  185. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  186. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  187. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  188. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -177
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfc6290decd1cdaa95140a3d8495fb324c3c6d3cf01b4794e40068baff8eb663
4
- data.tar.gz: cb01a5adb6f0118473a635b3d38416a4287207651262ee8a20b0f7833d8bfa37
3
+ metadata.gz: 6e1c2cdab1129d016428019597dc9f19dbf0836d0c545a13ce780486bf9fbba1
4
+ data.tar.gz: d9556ef773c776283a30f8e22308f0068e4d1a4ea918e81af44a0e126c0ca62e
5
5
  SHA512:
6
- metadata.gz: 85e01c90d7d35d169f773b4a9dd281b0cf563c5586d68e7592317d5747da81aba396b0330a9d77e776c01d098353fbc27c08d80f314ff6db88e5bf3117d06b41
7
- data.tar.gz: 650a4a5852353ed999c54159c7951905c3984e1d21a17c99e51c94462733df2f20f55931b76ecab2590e179c41756da862df170263d7c6077e5976465e802fe9
6
+ metadata.gz: 74cb6f2c95a7d51dc8e5199a47601b53897c29cfd6dde5d0c0ada40566d19bf0f9d0f0fcf9209dbe5b9e0ccbbcfcac9c1282fa74377af0b8e6cee63e75204948
7
+ data.tar.gz: d03e35ab0975d457a9202d2df2f697372f22f5a4072880dc7d308b87581ffd5a30446b8b235b221da0655cd4b31be58552b0a3f658e15a8c48d78cdee23f9794
@@ -1,19 +1,21 @@
1
1
  name: CI
2
2
 
3
- on: [push, pull_request]
3
+ on: [push]
4
4
 
5
5
  jobs:
6
- build:
6
+ tests:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  matrix:
10
10
  gemfile:
11
11
  - Gemfile
12
12
  - gemfiles/Gemfile-rails-6-0
13
+ - gemfiles/Gemfile-rails-6-1
13
14
  ruby:
14
15
  - 2.6
15
16
  - 2.7
16
17
  - 3.0
18
+ - 3.1
17
19
  exclude:
18
20
  - ruby: 2.6
19
21
  gemfile: Gemfile
@@ -21,39 +23,46 @@ jobs:
21
23
  BUNDLE_GEMFILE: ${{ matrix.gemfile }}
22
24
  name: "Tests: Ruby ${{ matrix.ruby }} ${{ matrix.gemfile }}"
23
25
  steps:
24
- - uses: actions/checkout@v1
26
+ - uses: actions/checkout@v2
25
27
  - name: Set up Ruby ${{ matrix.ruby }}
26
- uses: actions/setup-ruby@v1
28
+ uses: ruby/setup-ruby@v1
27
29
  with:
28
30
  ruby-version: ${{ matrix.ruby }}
31
+ bundler-cache: true
29
32
  - name: Run tests
30
- run: |
31
- gem install bundler
32
- bundle install --jobs 4 --retry 3
33
- bin/rake
33
+ run: bin/rake
34
34
  lint:
35
35
  runs-on: ubuntu-latest
36
+ name: Lint
36
37
  steps:
37
- - uses: actions/checkout@v1
38
+ - uses: actions/checkout@v2
38
39
  - name: Set up Ruby
39
- uses: actions/setup-ruby@v1
40
+ uses: ruby/setup-ruby@v1
40
41
  with:
41
- ruby-version: 3.0.x
42
+ ruby-version: 3.1
43
+ bundler-cache: true
42
44
  - name: Run style checks
43
- run: |
44
- gem install bundler
45
- bundle install --jobs 4 --retry 3
46
- bin/rubocop
47
- static-type-checking:
45
+ run: bin/rubocop
46
+ static_type_checking:
48
47
  runs-on: ubuntu-latest
48
+ name: Type Checking
49
49
  steps:
50
- - uses: actions/checkout@v1
50
+ - uses: actions/checkout@v2
51
51
  - name: Set up Ruby
52
- uses: actions/setup-ruby@v1
52
+ uses: ruby/setup-ruby@v1
53
53
  with:
54
- ruby-version: 3.0.x
54
+ ruby-version: 3.1
55
+ # bundler-cache: true
55
56
  - name: Run static type checks
56
57
  run: |
57
- gem install bundler
58
58
  bundle install --jobs 4 --retry 3
59
59
  bin/srb tc
60
+ buildall:
61
+ if: ${{ always() }}
62
+ runs-on: ubuntu-latest
63
+ name: Build (matrix)
64
+ needs: [lint, tests, static_type_checking]
65
+ steps:
66
+ - name: Check build matrix status
67
+ if: ${{ needs.tests.result != 'success' || needs.lint.result != 'success' || needs.static_type_checking.result != 'success' }}
68
+ run: exit 1
@@ -0,0 +1,22 @@
1
+ name: Contributor License Agreement (CLA)
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, synchronize]
6
+ issue_comment:
7
+ types: [created]
8
+
9
+ jobs:
10
+ cla:
11
+ runs-on: ubuntu-latest
12
+ if: |
13
+ (github.event.issue.pull_request
14
+ && !github.event.issue.pull_request.merged_at
15
+ && contains(github.event.comment.body, 'signed')
16
+ )
17
+ || (github.event.pull_request && !github.event.pull_request.merged)
18
+ steps:
19
+ - uses: Shopify/shopify-cla-action@v1
20
+ with:
21
+ github-token: ${{ secrets.GITHUB_TOKEN }}
22
+ cla-token: ${{ secrets.CLA_TOKEN }}
data/.rubocop.yml CHANGED
@@ -7,36 +7,20 @@ require:
7
7
 
8
8
  AllCops:
9
9
  TargetRubyVersion: 2.7
10
+ NewCops: disable
10
11
  UseCache: true
12
+ SuggestExtensions: false
11
13
  CacheRootDirectory: tmp
12
14
  Exclude:
13
15
  - 'test/fixtures/**/*'
14
16
 
15
- Lint/UnusedMethodArgument:
16
- AllowUnusedKeywordArguments: true
17
-
18
- Style/MethodCallWithArgsParentheses:
19
- Enabled: true
20
- IgnoreMacros: true
21
- IgnoredMethods:
22
- - require
23
- - require_relative
24
- - require_dependency
25
- - yield
26
- - raise
27
- Exclude:
28
- - Gemfile
29
-
30
- Style/StringLiterals:
31
- EnforcedStyle: double_quotes
32
-
33
17
  Sorbet/ConstantsFromStrings:
34
18
  Enabled: true
35
19
 
36
20
  Sorbet/ForbidIncludeConstLiteral:
37
21
  Enabled: true
38
22
 
39
- Sorbet/ParametersOrderingInSignature:
23
+ Sorbet/SignatureBuildOrder:
40
24
  Enabled: true
41
25
 
42
26
  Sorbet/KeywordArgumentOrdering:
@@ -44,3 +28,48 @@ Sorbet/KeywordArgumentOrdering:
44
28
 
45
29
  Sorbet/ValidSigil:
46
30
  Enabled: true
31
+
32
+ Performance/AncestorsInclude: # new in 1.7
33
+ Enabled: true
34
+
35
+ Performance/BigDecimalWithNumericArgument: # new in 1.7
36
+ Enabled: true
37
+
38
+ Performance/BlockGivenWithExplicitBlock: # new in 1.9
39
+ Enabled: true
40
+
41
+ Performance/CollectionLiteralInLoop: # new in 1.8
42
+ Enabled: true
43
+
44
+ Performance/ConstantRegexp: # new in 1.9
45
+ Enabled: true
46
+
47
+ Performance/MethodObjectAsBlock: # new in 1.9
48
+ Enabled: true
49
+
50
+ Performance/RedundantEqualityComparisonBlock: # new in 1.10
51
+ Enabled: true
52
+
53
+ Performance/RedundantSortBlock: # new in 1.7
54
+ Enabled: true
55
+
56
+ Performance/RedundantSplitRegexpArgument: # new in 1.10
57
+ Enabled: true
58
+
59
+ Performance/RedundantStringChars: # new in 1.7
60
+ Enabled: true
61
+
62
+ Performance/ReverseFirst: # new in 1.7
63
+ Enabled: true
64
+
65
+ Performance/SortReverse: # new in 1.7
66
+ Enabled: true
67
+
68
+ Performance/Squeeze: # new in 1.7
69
+ Enabled: true
70
+
71
+ Performance/StringInclude: # new in 1.7
72
+ Enabled: true
73
+
74
+ Performance/Sum: # new in 1.8
75
+ Enabled: true
data/Gemfile CHANGED
@@ -8,9 +8,8 @@ gemspec
8
8
  # Specify the same dependency sources as the application Gemfile
9
9
 
10
10
  gem("spring")
11
- gem("rails", github: "rails/rails", branch: "main")
11
+ gem("rails")
12
12
  gem("constant_resolver", require: false)
13
- gem("sorbet-runtime", require: false)
14
13
  gem("rubocop-performance", require: false)
15
14
  gem("rubocop-sorbet", require: false)
16
15
  gem("mocha", require: false)
@@ -20,4 +19,10 @@ gem("tapioca", require: false)
20
19
  group :development do
21
20
  gem("byebug", require: false)
22
21
  gem("minitest-focus", require: false)
22
+ gem("ruby-lsp", "~> 0.2.1")
23
+
24
+ gem("m")
25
+ gem("rake")
26
+ gem("sorbet-static-and-runtime")
27
+ gem("zeitwerk")
23
28
  end
data/Gemfile.lock CHANGED
@@ -1,240 +1,268 @@
1
- GIT
2
- remote: https://github.com/rails/rails.git
3
- revision: d612542336d9a61381311c95a27d801bb4094779
4
- branch: main
1
+ PATH
2
+ remote: .
5
3
  specs:
6
- actioncable (7.0.0.alpha)
7
- actionpack (= 7.0.0.alpha)
8
- activesupport (= 7.0.0.alpha)
4
+ packwerk (2.2.2)
5
+ activesupport (>= 5.2)
6
+ ast
7
+ better_html
8
+ bundler
9
+ constant_resolver (>= 0.2.0)
10
+ parallel
11
+ parser
12
+ sorbet-runtime (>= 0.5.9914)
13
+ zeitwerk (>= 2.6.1)
14
+
15
+ GEM
16
+ remote: https://rubygems.org/
17
+ specs:
18
+ actioncable (7.0.3.1)
19
+ actionpack (= 7.0.3.1)
20
+ activesupport (= 7.0.3.1)
9
21
  nio4r (~> 2.0)
10
22
  websocket-driver (>= 0.6.1)
11
- actionmailbox (7.0.0.alpha)
12
- actionpack (= 7.0.0.alpha)
13
- activejob (= 7.0.0.alpha)
14
- activerecord (= 7.0.0.alpha)
15
- activestorage (= 7.0.0.alpha)
16
- activesupport (= 7.0.0.alpha)
23
+ actionmailbox (7.0.3.1)
24
+ actionpack (= 7.0.3.1)
25
+ activejob (= 7.0.3.1)
26
+ activerecord (= 7.0.3.1)
27
+ activestorage (= 7.0.3.1)
28
+ activesupport (= 7.0.3.1)
17
29
  mail (>= 2.7.1)
18
- actionmailer (7.0.0.alpha)
19
- actionpack (= 7.0.0.alpha)
20
- actionview (= 7.0.0.alpha)
21
- activejob (= 7.0.0.alpha)
22
- activesupport (= 7.0.0.alpha)
30
+ net-imap
31
+ net-pop
32
+ net-smtp
33
+ actionmailer (7.0.3.1)
34
+ actionpack (= 7.0.3.1)
35
+ actionview (= 7.0.3.1)
36
+ activejob (= 7.0.3.1)
37
+ activesupport (= 7.0.3.1)
23
38
  mail (~> 2.5, >= 2.5.4)
39
+ net-imap
40
+ net-pop
41
+ net-smtp
24
42
  rails-dom-testing (~> 2.0)
25
- actionpack (7.0.0.alpha)
26
- actionview (= 7.0.0.alpha)
27
- activesupport (= 7.0.0.alpha)
28
- rack (~> 2.0, >= 2.0.9)
43
+ actionpack (7.0.3.1)
44
+ actionview (= 7.0.3.1)
45
+ activesupport (= 7.0.3.1)
46
+ rack (~> 2.0, >= 2.2.0)
29
47
  rack-test (>= 0.6.3)
30
48
  rails-dom-testing (~> 2.0)
31
49
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
32
- actiontext (7.0.0.alpha)
33
- actionpack (= 7.0.0.alpha)
34
- activerecord (= 7.0.0.alpha)
35
- activestorage (= 7.0.0.alpha)
36
- activesupport (= 7.0.0.alpha)
50
+ actiontext (7.0.3.1)
51
+ actionpack (= 7.0.3.1)
52
+ activerecord (= 7.0.3.1)
53
+ activestorage (= 7.0.3.1)
54
+ activesupport (= 7.0.3.1)
55
+ globalid (>= 0.6.0)
37
56
  nokogiri (>= 1.8.5)
38
- actionview (7.0.0.alpha)
39
- activesupport (= 7.0.0.alpha)
57
+ actionview (7.0.3.1)
58
+ activesupport (= 7.0.3.1)
40
59
  builder (~> 3.1)
41
60
  erubi (~> 1.4)
42
61
  rails-dom-testing (~> 2.0)
43
62
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
44
- activejob (7.0.0.alpha)
45
- activesupport (= 7.0.0.alpha)
63
+ activejob (7.0.3.1)
64
+ activesupport (= 7.0.3.1)
46
65
  globalid (>= 0.3.6)
47
- activemodel (7.0.0.alpha)
48
- activesupport (= 7.0.0.alpha)
49
- activerecord (7.0.0.alpha)
50
- activemodel (= 7.0.0.alpha)
51
- activesupport (= 7.0.0.alpha)
52
- activestorage (7.0.0.alpha)
53
- actionpack (= 7.0.0.alpha)
54
- activejob (= 7.0.0.alpha)
55
- activerecord (= 7.0.0.alpha)
56
- activesupport (= 7.0.0.alpha)
57
- marcel (~> 1.0.0)
58
- mini_mime (~> 1.0.2)
59
- activesupport (7.0.0.alpha)
66
+ activemodel (7.0.3.1)
67
+ activesupport (= 7.0.3.1)
68
+ activerecord (7.0.3.1)
69
+ activemodel (= 7.0.3.1)
70
+ activesupport (= 7.0.3.1)
71
+ activestorage (7.0.3.1)
72
+ actionpack (= 7.0.3.1)
73
+ activejob (= 7.0.3.1)
74
+ activerecord (= 7.0.3.1)
75
+ activesupport (= 7.0.3.1)
76
+ marcel (~> 1.0)
77
+ mini_mime (>= 1.1.0)
78
+ activesupport (7.0.3.1)
60
79
  concurrent-ruby (~> 1.0, >= 1.0.2)
61
80
  i18n (>= 1.6, < 2)
62
81
  minitest (>= 5.1)
63
82
  tzinfo (~> 2.0)
64
- zeitwerk (~> 2.3)
65
- rails (7.0.0.alpha)
66
- actioncable (= 7.0.0.alpha)
67
- actionmailbox (= 7.0.0.alpha)
68
- actionmailer (= 7.0.0.alpha)
69
- actionpack (= 7.0.0.alpha)
70
- actiontext (= 7.0.0.alpha)
71
- actionview (= 7.0.0.alpha)
72
- activejob (= 7.0.0.alpha)
73
- activemodel (= 7.0.0.alpha)
74
- activerecord (= 7.0.0.alpha)
75
- activestorage (= 7.0.0.alpha)
76
- activesupport (= 7.0.0.alpha)
77
- bundler (>= 1.15.0)
78
- railties (= 7.0.0.alpha)
79
- sprockets-rails (>= 2.0.0)
80
- railties (7.0.0.alpha)
81
- actionpack (= 7.0.0.alpha)
82
- activesupport (= 7.0.0.alpha)
83
- method_source
84
- rake (>= 0.13)
85
- thor (~> 1.0)
86
-
87
- PATH
88
- remote: .
89
- specs:
90
- packwerk (2.2.0)
91
- activesupport (>= 5.2)
92
- ast
93
- better_html
94
- bundler
95
- constant_resolver (>= 0.2.0)
96
- digest
97
- parallel
98
- parser
99
- sorbet-runtime (>= 0.5.9914)
100
-
101
- GEM
102
- remote: https://rubygems.org/
103
- specs:
104
83
  ast (2.4.2)
105
- better_html (1.0.16)
106
- actionview (>= 4.0)
107
- activesupport (>= 4.0)
84
+ better_html (2.0.1)
85
+ actionview (>= 6.0)
86
+ activesupport (>= 6.0)
108
87
  ast (~> 2.0)
109
88
  erubi (~> 1.4)
110
- html_tokenizer (~> 0.0.6)
111
89
  parser (>= 2.4)
112
90
  smart_properties
113
91
  builder (3.2.4)
114
92
  byebug (11.1.3)
115
93
  coderay (1.1.3)
116
- colorize (0.8.1)
117
- commander (4.5.2)
118
- highline (~> 2.0.0)
119
- concurrent-ruby (1.1.8)
94
+ concurrent-ruby (1.1.10)
120
95
  constant_resolver (0.2.0)
121
96
  crass (1.0.6)
97
+ diff-lcs (1.5.0)
122
98
  digest (3.1.0)
123
- erubi (1.10.0)
124
- globalid (0.4.2)
125
- activesupport (>= 4.2.0)
126
- highline (2.0.3)
127
- html_tokenizer (0.0.7)
128
- i18n (1.8.10)
99
+ erubi (1.11.0)
100
+ globalid (1.0.0)
101
+ activesupport (>= 5.0)
102
+ i18n (1.12.0)
129
103
  concurrent-ruby (~> 1.0)
130
- loofah (2.9.0)
104
+ json (2.6.2)
105
+ language_server-protocol (3.16.0.3)
106
+ loofah (2.18.0)
131
107
  crass (~> 1.0.2)
132
108
  nokogiri (>= 1.5.9)
133
- m (1.5.1)
109
+ m (1.6.0)
134
110
  method_source (>= 0.6.7)
135
111
  rake (>= 0.9.2.2)
136
112
  mail (2.7.1)
137
113
  mini_mime (>= 0.1.1)
138
- marcel (1.0.0)
114
+ marcel (1.0.2)
139
115
  method_source (1.0.0)
140
- mini_mime (1.0.3)
116
+ mini_mime (1.1.2)
141
117
  mini_portile2 (2.8.0)
142
- minitest (5.14.4)
143
- minitest-focus (1.2.1)
118
+ minitest (5.16.2)
119
+ minitest-focus (1.3.1)
144
120
  minitest (>= 4, < 6)
145
- mocha (1.12.0)
146
- nio4r (2.5.7)
147
- nokogiri (1.13.4)
121
+ mocha (1.14.0)
122
+ net-imap (0.2.3)
123
+ digest
124
+ net-protocol
125
+ strscan
126
+ net-pop (0.1.1)
127
+ digest
128
+ net-protocol
129
+ timeout
130
+ net-protocol (0.1.3)
131
+ timeout
132
+ net-smtp (0.3.1)
133
+ digest
134
+ net-protocol
135
+ timeout
136
+ netrc (0.11.0)
137
+ nio4r (2.5.8)
138
+ nokogiri (1.13.8)
148
139
  mini_portile2 (~> 2.8.0)
149
140
  racc (~> 1.4)
150
- nokogiri (1.13.4-x86_64-darwin)
141
+ nokogiri (1.13.8-x86_64-darwin)
151
142
  racc (~> 1.4)
152
- parallel (1.20.1)
153
- parlour (6.0.0)
154
- commander (~> 4.5)
155
- parser
156
- rainbow (~> 3.0)
157
- sorbet-runtime (>= 0.5)
158
- parser (3.0.0.0)
143
+ parallel (1.22.1)
144
+ parser (3.1.2.1)
159
145
  ast (~> 2.4.1)
160
- pry (0.14.0)
146
+ prettier_print (0.1.0)
147
+ pry (0.14.1)
161
148
  coderay (~> 1.1)
162
149
  method_source (~> 1.0)
163
- psych (3.3.2)
164
150
  racc (1.6.0)
165
- rack (2.2.3)
166
- rack-test (1.1.0)
167
- rack (>= 1.0, < 3)
151
+ rack (2.2.4)
152
+ rack-test (2.0.2)
153
+ rack (>= 1.3)
154
+ rails (7.0.3.1)
155
+ actioncable (= 7.0.3.1)
156
+ actionmailbox (= 7.0.3.1)
157
+ actionmailer (= 7.0.3.1)
158
+ actionpack (= 7.0.3.1)
159
+ actiontext (= 7.0.3.1)
160
+ actionview (= 7.0.3.1)
161
+ activejob (= 7.0.3.1)
162
+ activemodel (= 7.0.3.1)
163
+ activerecord (= 7.0.3.1)
164
+ activestorage (= 7.0.3.1)
165
+ activesupport (= 7.0.3.1)
166
+ bundler (>= 1.15.0)
167
+ railties (= 7.0.3.1)
168
168
  rails-dom-testing (2.0.3)
169
169
  activesupport (>= 4.2.0)
170
170
  nokogiri (>= 1.6)
171
- rails-html-sanitizer (1.3.0)
171
+ rails-html-sanitizer (1.4.3)
172
172
  loofah (~> 2.3)
173
- rainbow (3.0.0)
174
- rake (13.0.3)
175
- regexp_parser (2.1.1)
173
+ railties (7.0.3.1)
174
+ actionpack (= 7.0.3.1)
175
+ activesupport (= 7.0.3.1)
176
+ method_source
177
+ rake (>= 12.2)
178
+ thor (~> 1.0)
179
+ zeitwerk (~> 2.5)
180
+ rainbow (3.1.1)
181
+ rake (13.0.6)
182
+ rbi (0.0.15)
183
+ ast
184
+ parser (>= 2.6.4.0)
185
+ sorbet-runtime (>= 0.5.9204)
186
+ unparser
187
+ regexp_parser (2.5.0)
176
188
  rexml (3.2.5)
177
- rubocop (1.12.0)
189
+ rubocop (1.34.1)
190
+ json (~> 2.3)
178
191
  parallel (~> 1.10)
179
- parser (>= 3.0.0.0)
192
+ parser (>= 3.1.2.1)
180
193
  rainbow (>= 2.2.2, < 4.0)
181
194
  regexp_parser (>= 1.8, < 3.0)
182
- rexml
183
- rubocop-ast (>= 1.2.0, < 2.0)
195
+ rexml (>= 3.2.5, < 4.0)
196
+ rubocop-ast (>= 1.20.0, < 2.0)
184
197
  ruby-progressbar (~> 1.7)
185
198
  unicode-display_width (>= 1.4.0, < 3.0)
186
- rubocop-ast (1.4.1)
187
- parser (>= 2.7.1.5)
188
- rubocop-performance (1.10.2)
189
- rubocop (>= 0.90.0, < 2.0)
199
+ rubocop-ast (1.21.0)
200
+ parser (>= 3.1.1.0)
201
+ rubocop-performance (1.14.3)
202
+ rubocop (>= 1.7.0, < 2.0)
190
203
  rubocop-ast (>= 0.4.0)
191
- rubocop-shopify (2.0.1)
192
- rubocop (~> 1.11)
193
- rubocop-sorbet (0.6.1)
194
- rubocop
204
+ rubocop-shopify (2.9.0)
205
+ rubocop (~> 1.33)
206
+ rubocop-sorbet (0.6.11)
207
+ rubocop (>= 0.90.0)
208
+ ruby-lsp (0.2.3)
209
+ language_server-protocol
210
+ sorbet-runtime
211
+ syntax_tree (>= 2.4)
195
212
  ruby-progressbar (1.11.0)
196
213
  smart_properties (1.17.0)
197
- sorbet (0.5.9914)
198
- sorbet-static (= 0.5.9914)
199
- sorbet-runtime (0.5.9914)
200
- sorbet-static (0.5.9914-universal-darwin-14)
201
- sorbet-static (0.5.9914-universal-darwin-15)
202
- sorbet-static (0.5.9914-universal-darwin-16)
203
- sorbet-static (0.5.9914-universal-darwin-17)
204
- sorbet-static (0.5.9914-universal-darwin-18)
205
- sorbet-static (0.5.9914-universal-darwin-19)
206
- sorbet-static (0.5.9914-universal-darwin-20)
207
- sorbet-static (0.5.9914-universal-darwin-21)
208
- sorbet-static (0.5.9914-x86_64-linux)
209
- spoom (1.1.0)
210
- colorize
211
- sorbet (>= 0.5.6347)
212
- sorbet-runtime
214
+ sorbet (0.5.10313)
215
+ sorbet-static (= 0.5.10313)
216
+ sorbet-runtime (0.5.10313)
217
+ sorbet-static (0.5.10313-universal-darwin-14)
218
+ sorbet-static (0.5.10313-universal-darwin-15)
219
+ sorbet-static (0.5.10313-universal-darwin-16)
220
+ sorbet-static (0.5.10313-universal-darwin-17)
221
+ sorbet-static (0.5.10313-universal-darwin-18)
222
+ sorbet-static (0.5.10313-universal-darwin-19)
223
+ sorbet-static (0.5.10313-universal-darwin-20)
224
+ sorbet-static (0.5.10313-universal-darwin-21)
225
+ sorbet-static (0.5.10313-universal-darwin-22)
226
+ sorbet-static (0.5.10313-x86_64-linux)
227
+ sorbet-static-and-runtime (0.5.10313)
228
+ sorbet (= 0.5.10313)
229
+ sorbet-runtime (= 0.5.10313)
230
+ spoom (1.1.11)
231
+ sorbet (>= 0.5.9204)
232
+ sorbet-runtime (>= 0.5.9204)
213
233
  thor (>= 0.19.2)
214
- spring (2.1.1)
215
- sprockets (4.0.2)
216
- concurrent-ruby (~> 1.0)
217
- rack (> 1, < 3)
218
- sprockets-rails (3.2.2)
219
- actionpack (>= 4.0)
220
- activesupport (>= 4.0)
221
- sprockets (>= 3.0.0)
222
- tapioca (0.4.19)
234
+ spring (4.0.0)
235
+ strscan (3.0.4)
236
+ syntax_tree (3.3.0)
237
+ prettier_print
238
+ tapioca (0.9.2)
223
239
  bundler (>= 1.17.3)
224
- parlour (>= 2.1.0)
240
+ netrc (>= 0.11.0)
241
+ parallel (>= 1.21.0)
225
242
  pry (>= 0.12.2)
226
- sorbet-runtime
227
- sorbet-static (>= 0.4.4471)
228
- spoom
229
- thor (>= 0.19.2)
230
- thor (1.1.0)
231
- tzinfo (2.0.4)
243
+ rbi (~> 0.0.0, >= 0.0.14)
244
+ sorbet-static-and-runtime (>= 0.5.9204)
245
+ spoom (~> 1.1.0, >= 1.1.11)
246
+ thor (>= 1.2.0)
247
+ yard-sorbet
248
+ thor (1.2.1)
249
+ timeout (0.3.0)
250
+ tzinfo (2.0.5)
232
251
  concurrent-ruby (~> 1.0)
233
- unicode-display_width (2.0.0)
234
- websocket-driver (0.7.3)
252
+ unicode-display_width (2.2.0)
253
+ unparser (0.6.5)
254
+ diff-lcs (~> 1.3)
255
+ parser (>= 3.1.0)
256
+ webrick (1.7.0)
257
+ websocket-driver (0.7.5)
235
258
  websocket-extensions (>= 0.1.0)
236
259
  websocket-extensions (0.1.5)
237
- zeitwerk (2.4.2)
260
+ yard (0.9.28)
261
+ webrick (~> 1.7.0)
262
+ yard-sorbet (0.6.1)
263
+ sorbet-runtime (>= 0.5)
264
+ yard (>= 0.9)
265
+ zeitwerk (2.6.6)
238
266
 
239
267
  PLATFORMS
240
268
  ruby
@@ -248,14 +276,13 @@ DEPENDENCIES
248
276
  minitest-focus
249
277
  mocha
250
278
  packwerk!
251
- psych (~> 3)
252
- rails!
279
+ rails
253
280
  rake
254
281
  rubocop-performance
255
282
  rubocop-shopify
256
283
  rubocop-sorbet
257
- sorbet
258
- sorbet-runtime
284
+ ruby-lsp (~> 0.2.1)
285
+ sorbet-static-and-runtime
259
286
  spring
260
287
  tapioca
261
288
  zeitwerk