packwerk 2.2.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
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