packwerk 2.2.0 → 2.2.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 (187) 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 +201 -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_validator.rb +7 -6
  19. data/lib/packwerk/association_inspector.rb +17 -15
  20. data/lib/packwerk/cache.rb +36 -29
  21. data/lib/packwerk/cli.rb +5 -6
  22. data/lib/packwerk/const_node_inspector.rb +8 -7
  23. data/lib/packwerk/constant_name_inspector.rb +2 -2
  24. data/lib/packwerk/deprecated_references.rb +34 -19
  25. data/lib/packwerk/file_processor.rb +14 -14
  26. data/lib/packwerk/files_for_processing.rb +27 -31
  27. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  28. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  29. data/lib/packwerk/node.rb +1 -294
  30. data/lib/packwerk/node_helpers.rb +335 -0
  31. data/lib/packwerk/node_processor.rb +6 -5
  32. data/lib/packwerk/node_processor_factory.rb +3 -3
  33. data/lib/packwerk/node_visitor.rb +1 -1
  34. data/lib/packwerk/offense_collection.rb +6 -3
  35. data/lib/packwerk/offenses_formatter.rb +2 -2
  36. data/lib/packwerk/package.rb +3 -0
  37. data/lib/packwerk/package_set.rb +2 -0
  38. data/lib/packwerk/parse_run.rb +15 -13
  39. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  40. data/lib/packwerk/parsers/erb.rb +3 -3
  41. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  42. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  43. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  44. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  45. data/lib/packwerk/reference_extractor.rb +51 -48
  46. data/lib/packwerk/reference_offense.rb +3 -27
  47. data/lib/packwerk/run_context.rb +3 -3
  48. data/lib/packwerk/spring_command.rb +1 -1
  49. data/lib/packwerk/version.rb +1 -1
  50. data/lib/packwerk.rb +1 -0
  51. data/packwerk.gemspec +4 -12
  52. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  53. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  54. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  55. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  56. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  57. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  58. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  59. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  60. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  61. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  62. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  63. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  64. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  65. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  66. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  67. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  68. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  69. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  70. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  71. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  72. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  73. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  74. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  75. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  76. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  77. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  78. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  79. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  80. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  81. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  82. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  83. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  84. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  85. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  86. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  87. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  88. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  89. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  90. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  91. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  92. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  93. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  94. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  95. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  96. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  97. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  98. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  99. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  100. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  101. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  102. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  103. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  104. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  105. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  106. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  107. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  108. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  109. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  110. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  111. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  112. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  113. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  114. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  115. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  116. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  117. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  118. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  119. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  120. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  121. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  122. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  123. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  124. data/sorbet/rbi/shims/psych.rbi +5 -0
  125. data/sorbet/tapioca/require.rb +2 -3
  126. metadata +88 -157
  127. data/.github/probots.yml +0 -2
  128. data/library.yml +0 -6
  129. data/service.yml +0 -1
  130. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  131. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  132. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  133. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  134. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  135. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  136. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  137. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  138. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  139. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  140. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  141. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  142. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  143. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  144. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  145. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  146. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  147. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  148. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  149. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  150. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  151. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  152. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  153. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  154. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  155. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  156. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  157. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  158. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  159. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  160. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  161. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  162. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  163. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  164. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  165. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  166. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  167. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  168. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  169. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  170. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  171. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  172. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  173. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  177. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  178. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  179. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  180. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  181. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  182. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  183. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  184. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  185. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  186. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  187. 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: a7968dbdc908eb500726b8af244e0de8e44075b86409eef871003d47174a139d
4
+ data.tar.gz: 48037d44dbb482841e64c218a22b98978e5e6dac2dd277b10b2989c508daaa26
5
5
  SHA512:
6
- metadata.gz: 85e01c90d7d35d169f773b4a9dd281b0cf563c5586d68e7592317d5747da81aba396b0330a9d77e776c01d098353fbc27c08d80f314ff6db88e5bf3117d06b41
7
- data.tar.gz: 650a4a5852353ed999c54159c7951905c3984e1d21a17c99e51c94462733df2f20f55931b76ecab2590e179c41756da862df170263d7c6077e5976465e802fe9
6
+ metadata.gz: 8e3c43a046bb108cc76fde787fbdd5d67475c0feba647e9653e6f7e9fc2fc0082994f09791a4fc870e639f3a964ab2727fd3216601f6dad3f69ccdf3059fb0ee
7
+ data.tar.gz: 66433d48c993ce76edb6eb2bf08d7ce6a474efcac790e4b42628a1f2371b09be579b7eb58dc84aaef2614e6779302e34f80559dfc179d48141aeb2b2f99e41d3
@@ -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,267 @@
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.1)
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
+
14
+ GEM
15
+ remote: https://rubygems.org/
16
+ specs:
17
+ actioncable (7.0.3.1)
18
+ actionpack (= 7.0.3.1)
19
+ activesupport (= 7.0.3.1)
9
20
  nio4r (~> 2.0)
10
21
  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)
22
+ actionmailbox (7.0.3.1)
23
+ actionpack (= 7.0.3.1)
24
+ activejob (= 7.0.3.1)
25
+ activerecord (= 7.0.3.1)
26
+ activestorage (= 7.0.3.1)
27
+ activesupport (= 7.0.3.1)
17
28
  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)
29
+ net-imap
30
+ net-pop
31
+ net-smtp
32
+ actionmailer (7.0.3.1)
33
+ actionpack (= 7.0.3.1)
34
+ actionview (= 7.0.3.1)
35
+ activejob (= 7.0.3.1)
36
+ activesupport (= 7.0.3.1)
23
37
  mail (~> 2.5, >= 2.5.4)
38
+ net-imap
39
+ net-pop
40
+ net-smtp
24
41
  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)
42
+ actionpack (7.0.3.1)
43
+ actionview (= 7.0.3.1)
44
+ activesupport (= 7.0.3.1)
45
+ rack (~> 2.0, >= 2.2.0)
29
46
  rack-test (>= 0.6.3)
30
47
  rails-dom-testing (~> 2.0)
31
48
  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)
49
+ actiontext (7.0.3.1)
50
+ actionpack (= 7.0.3.1)
51
+ activerecord (= 7.0.3.1)
52
+ activestorage (= 7.0.3.1)
53
+ activesupport (= 7.0.3.1)
54
+ globalid (>= 0.6.0)
37
55
  nokogiri (>= 1.8.5)
38
- actionview (7.0.0.alpha)
39
- activesupport (= 7.0.0.alpha)
56
+ actionview (7.0.3.1)
57
+ activesupport (= 7.0.3.1)
40
58
  builder (~> 3.1)
41
59
  erubi (~> 1.4)
42
60
  rails-dom-testing (~> 2.0)
43
61
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
44
- activejob (7.0.0.alpha)
45
- activesupport (= 7.0.0.alpha)
62
+ activejob (7.0.3.1)
63
+ activesupport (= 7.0.3.1)
46
64
  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)
65
+ activemodel (7.0.3.1)
66
+ activesupport (= 7.0.3.1)
67
+ activerecord (7.0.3.1)
68
+ activemodel (= 7.0.3.1)
69
+ activesupport (= 7.0.3.1)
70
+ activestorage (7.0.3.1)
71
+ actionpack (= 7.0.3.1)
72
+ activejob (= 7.0.3.1)
73
+ activerecord (= 7.0.3.1)
74
+ activesupport (= 7.0.3.1)
75
+ marcel (~> 1.0)
76
+ mini_mime (>= 1.1.0)
77
+ activesupport (7.0.3.1)
60
78
  concurrent-ruby (~> 1.0, >= 1.0.2)
61
79
  i18n (>= 1.6, < 2)
62
80
  minitest (>= 5.1)
63
81
  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
82
  ast (2.4.2)
105
- better_html (1.0.16)
106
- actionview (>= 4.0)
107
- activesupport (>= 4.0)
83
+ better_html (2.0.1)
84
+ actionview (>= 6.0)
85
+ activesupport (>= 6.0)
108
86
  ast (~> 2.0)
109
87
  erubi (~> 1.4)
110
- html_tokenizer (~> 0.0.6)
111
88
  parser (>= 2.4)
112
89
  smart_properties
113
90
  builder (3.2.4)
114
91
  byebug (11.1.3)
115
92
  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)
93
+ concurrent-ruby (1.1.10)
120
94
  constant_resolver (0.2.0)
121
95
  crass (1.0.6)
96
+ diff-lcs (1.5.0)
122
97
  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)
98
+ erubi (1.11.0)
99
+ globalid (1.0.0)
100
+ activesupport (>= 5.0)
101
+ i18n (1.12.0)
129
102
  concurrent-ruby (~> 1.0)
130
- loofah (2.9.0)
103
+ json (2.6.2)
104
+ language_server-protocol (3.16.0.3)
105
+ loofah (2.18.0)
131
106
  crass (~> 1.0.2)
132
107
  nokogiri (>= 1.5.9)
133
- m (1.5.1)
108
+ m (1.6.0)
134
109
  method_source (>= 0.6.7)
135
110
  rake (>= 0.9.2.2)
136
111
  mail (2.7.1)
137
112
  mini_mime (>= 0.1.1)
138
- marcel (1.0.0)
113
+ marcel (1.0.2)
139
114
  method_source (1.0.0)
140
- mini_mime (1.0.3)
115
+ mini_mime (1.1.2)
141
116
  mini_portile2 (2.8.0)
142
- minitest (5.14.4)
143
- minitest-focus (1.2.1)
117
+ minitest (5.16.2)
118
+ minitest-focus (1.3.1)
144
119
  minitest (>= 4, < 6)
145
- mocha (1.12.0)
146
- nio4r (2.5.7)
147
- nokogiri (1.13.4)
120
+ mocha (1.14.0)
121
+ net-imap (0.2.3)
122
+ digest
123
+ net-protocol
124
+ strscan
125
+ net-pop (0.1.1)
126
+ digest
127
+ net-protocol
128
+ timeout
129
+ net-protocol (0.1.3)
130
+ timeout
131
+ net-smtp (0.3.1)
132
+ digest
133
+ net-protocol
134
+ timeout
135
+ netrc (0.11.0)
136
+ nio4r (2.5.8)
137
+ nokogiri (1.13.8)
148
138
  mini_portile2 (~> 2.8.0)
149
139
  racc (~> 1.4)
150
- nokogiri (1.13.4-x86_64-darwin)
140
+ nokogiri (1.13.8-x86_64-darwin)
151
141
  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)
142
+ parallel (1.22.1)
143
+ parser (3.1.2.1)
159
144
  ast (~> 2.4.1)
160
- pry (0.14.0)
145
+ prettier_print (0.1.0)
146
+ pry (0.14.1)
161
147
  coderay (~> 1.1)
162
148
  method_source (~> 1.0)
163
- psych (3.3.2)
164
149
  racc (1.6.0)
165
- rack (2.2.3)
166
- rack-test (1.1.0)
167
- rack (>= 1.0, < 3)
150
+ rack (2.2.4)
151
+ rack-test (2.0.2)
152
+ rack (>= 1.3)
153
+ rails (7.0.3.1)
154
+ actioncable (= 7.0.3.1)
155
+ actionmailbox (= 7.0.3.1)
156
+ actionmailer (= 7.0.3.1)
157
+ actionpack (= 7.0.3.1)
158
+ actiontext (= 7.0.3.1)
159
+ actionview (= 7.0.3.1)
160
+ activejob (= 7.0.3.1)
161
+ activemodel (= 7.0.3.1)
162
+ activerecord (= 7.0.3.1)
163
+ activestorage (= 7.0.3.1)
164
+ activesupport (= 7.0.3.1)
165
+ bundler (>= 1.15.0)
166
+ railties (= 7.0.3.1)
168
167
  rails-dom-testing (2.0.3)
169
168
  activesupport (>= 4.2.0)
170
169
  nokogiri (>= 1.6)
171
- rails-html-sanitizer (1.3.0)
170
+ rails-html-sanitizer (1.4.3)
172
171
  loofah (~> 2.3)
173
- rainbow (3.0.0)
174
- rake (13.0.3)
175
- regexp_parser (2.1.1)
172
+ railties (7.0.3.1)
173
+ actionpack (= 7.0.3.1)
174
+ activesupport (= 7.0.3.1)
175
+ method_source
176
+ rake (>= 12.2)
177
+ thor (~> 1.0)
178
+ zeitwerk (~> 2.5)
179
+ rainbow (3.1.1)
180
+ rake (13.0.6)
181
+ rbi (0.0.15)
182
+ ast
183
+ parser (>= 2.6.4.0)
184
+ sorbet-runtime (>= 0.5.9204)
185
+ unparser
186
+ regexp_parser (2.5.0)
176
187
  rexml (3.2.5)
177
- rubocop (1.12.0)
188
+ rubocop (1.34.1)
189
+ json (~> 2.3)
178
190
  parallel (~> 1.10)
179
- parser (>= 3.0.0.0)
191
+ parser (>= 3.1.2.1)
180
192
  rainbow (>= 2.2.2, < 4.0)
181
193
  regexp_parser (>= 1.8, < 3.0)
182
- rexml
183
- rubocop-ast (>= 1.2.0, < 2.0)
194
+ rexml (>= 3.2.5, < 4.0)
195
+ rubocop-ast (>= 1.20.0, < 2.0)
184
196
  ruby-progressbar (~> 1.7)
185
197
  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)
198
+ rubocop-ast (1.21.0)
199
+ parser (>= 3.1.1.0)
200
+ rubocop-performance (1.14.3)
201
+ rubocop (>= 1.7.0, < 2.0)
190
202
  rubocop-ast (>= 0.4.0)
191
- rubocop-shopify (2.0.1)
192
- rubocop (~> 1.11)
193
- rubocop-sorbet (0.6.1)
194
- rubocop
203
+ rubocop-shopify (2.9.0)
204
+ rubocop (~> 1.33)
205
+ rubocop-sorbet (0.6.11)
206
+ rubocop (>= 0.90.0)
207
+ ruby-lsp (0.2.3)
208
+ language_server-protocol
209
+ sorbet-runtime
210
+ syntax_tree (>= 2.4)
195
211
  ruby-progressbar (1.11.0)
196
212
  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
213
+ sorbet (0.5.10313)
214
+ sorbet-static (= 0.5.10313)
215
+ sorbet-runtime (0.5.10313)
216
+ sorbet-static (0.5.10313-universal-darwin-14)
217
+ sorbet-static (0.5.10313-universal-darwin-15)
218
+ sorbet-static (0.5.10313-universal-darwin-16)
219
+ sorbet-static (0.5.10313-universal-darwin-17)
220
+ sorbet-static (0.5.10313-universal-darwin-18)
221
+ sorbet-static (0.5.10313-universal-darwin-19)
222
+ sorbet-static (0.5.10313-universal-darwin-20)
223
+ sorbet-static (0.5.10313-universal-darwin-21)
224
+ sorbet-static (0.5.10313-universal-darwin-22)
225
+ sorbet-static (0.5.10313-x86_64-linux)
226
+ sorbet-static-and-runtime (0.5.10313)
227
+ sorbet (= 0.5.10313)
228
+ sorbet-runtime (= 0.5.10313)
229
+ spoom (1.1.11)
230
+ sorbet (>= 0.5.9204)
231
+ sorbet-runtime (>= 0.5.9204)
213
232
  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)
233
+ spring (4.0.0)
234
+ strscan (3.0.4)
235
+ syntax_tree (3.3.0)
236
+ prettier_print
237
+ tapioca (0.9.2)
223
238
  bundler (>= 1.17.3)
224
- parlour (>= 2.1.0)
239
+ netrc (>= 0.11.0)
240
+ parallel (>= 1.21.0)
225
241
  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)
242
+ rbi (~> 0.0.0, >= 0.0.14)
243
+ sorbet-static-and-runtime (>= 0.5.9204)
244
+ spoom (~> 1.1.0, >= 1.1.11)
245
+ thor (>= 1.2.0)
246
+ yard-sorbet
247
+ thor (1.2.1)
248
+ timeout (0.3.0)
249
+ tzinfo (2.0.5)
232
250
  concurrent-ruby (~> 1.0)
233
- unicode-display_width (2.0.0)
234
- websocket-driver (0.7.3)
251
+ unicode-display_width (2.2.0)
252
+ unparser (0.6.5)
253
+ diff-lcs (~> 1.3)
254
+ parser (>= 3.1.0)
255
+ webrick (1.7.0)
256
+ websocket-driver (0.7.5)
235
257
  websocket-extensions (>= 0.1.0)
236
258
  websocket-extensions (0.1.5)
237
- zeitwerk (2.4.2)
259
+ yard (0.9.28)
260
+ webrick (~> 1.7.0)
261
+ yard-sorbet (0.6.1)
262
+ sorbet-runtime (>= 0.5)
263
+ yard (>= 0.9)
264
+ zeitwerk (2.6.0)
238
265
 
239
266
  PLATFORMS
240
267
  ruby
@@ -248,14 +275,13 @@ DEPENDENCIES
248
275
  minitest-focus
249
276
  mocha
250
277
  packwerk!
251
- psych (~> 3)
252
- rails!
278
+ rails
253
279
  rake
254
280
  rubocop-performance
255
281
  rubocop-shopify
256
282
  rubocop-sorbet
257
- sorbet
258
- sorbet-runtime
283
+ ruby-lsp (~> 0.2.1)
284
+ sorbet-static-and-runtime
259
285
  spring
260
286
  tapioca
261
287
  zeitwerk