reviewer 0.1.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.alexignore +1 -0
  3. data/.github/FUNDING.yml +3 -0
  4. data/.github/workflows/main.yml +81 -11
  5. data/.github/workflows/release.yml +98 -0
  6. data/.gitignore +1 -1
  7. data/.inch.yml +3 -1
  8. data/.reek.yml +175 -0
  9. data/.reviewer.example.yml +27 -12
  10. data/.reviewer.future.yml +221 -0
  11. data/.reviewer.yml +191 -28
  12. data/.reviewer_stdout +0 -0
  13. data/.rubocop.yml +34 -1
  14. data/CHANGELOG.md +42 -2
  15. data/Gemfile +39 -1
  16. data/Gemfile.lock +294 -72
  17. data/README.md +315 -7
  18. data/RELEASING.md +190 -0
  19. data/Rakefile +117 -0
  20. data/dependency_decisions.yml +61 -0
  21. data/exe/fmt +1 -1
  22. data/exe/rvw +1 -1
  23. data/lib/reviewer/arguments/files.rb +60 -27
  24. data/lib/reviewer/arguments/keywords.rb +39 -43
  25. data/lib/reviewer/arguments/tags.rb +21 -14
  26. data/lib/reviewer/arguments.rb +107 -29
  27. data/lib/reviewer/batch/formatter.rb +87 -0
  28. data/lib/reviewer/batch.rb +46 -35
  29. data/lib/reviewer/capabilities.rb +81 -0
  30. data/lib/reviewer/command/string/env.rb +16 -6
  31. data/lib/reviewer/command/string/flags.rb +14 -5
  32. data/lib/reviewer/command/string.rb +53 -24
  33. data/lib/reviewer/command.rb +69 -39
  34. data/lib/reviewer/configuration/loader.rb +70 -0
  35. data/lib/reviewer/configuration.rb +14 -4
  36. data/lib/reviewer/context.rb +15 -0
  37. data/lib/reviewer/doctor/config_check.rb +46 -0
  38. data/lib/reviewer/doctor/environment_check.rb +58 -0
  39. data/lib/reviewer/doctor/formatter.rb +75 -0
  40. data/lib/reviewer/doctor/keyword_check.rb +85 -0
  41. data/lib/reviewer/doctor/opportunity_check.rb +88 -0
  42. data/lib/reviewer/doctor/report.rb +63 -0
  43. data/lib/reviewer/doctor/tool_inventory.rb +41 -0
  44. data/lib/reviewer/doctor.rb +28 -0
  45. data/lib/reviewer/history.rb +36 -12
  46. data/lib/reviewer/output/formatting.rb +40 -0
  47. data/lib/reviewer/output/printer.rb +105 -0
  48. data/lib/reviewer/output.rb +54 -65
  49. data/lib/reviewer/prompt.rb +38 -0
  50. data/lib/reviewer/report/formatter.rb +124 -0
  51. data/lib/reviewer/report.rb +100 -0
  52. data/lib/reviewer/runner/failed_files.rb +66 -0
  53. data/lib/reviewer/runner/formatter.rb +103 -0
  54. data/lib/reviewer/runner/guidance.rb +79 -0
  55. data/lib/reviewer/runner/result.rb +150 -0
  56. data/lib/reviewer/runner/strategies/captured.rb +232 -0
  57. data/lib/reviewer/runner/strategies/{verbose.rb → passthrough.rb} +15 -24
  58. data/lib/reviewer/runner.rb +179 -35
  59. data/lib/reviewer/session/formatter.rb +87 -0
  60. data/lib/reviewer/session.rb +208 -0
  61. data/lib/reviewer/setup/catalog.rb +233 -0
  62. data/lib/reviewer/setup/detector.rb +61 -0
  63. data/lib/reviewer/setup/formatter.rb +94 -0
  64. data/lib/reviewer/setup/gemfile_lock.rb +55 -0
  65. data/lib/reviewer/setup/generator.rb +54 -0
  66. data/lib/reviewer/setup/tool_block.rb +112 -0
  67. data/lib/reviewer/setup.rb +41 -0
  68. data/lib/reviewer/shell/result.rb +25 -11
  69. data/lib/reviewer/shell/timer.rb +47 -27
  70. data/lib/reviewer/shell.rb +46 -21
  71. data/lib/reviewer/tool/conversions.rb +20 -0
  72. data/lib/reviewer/tool/file_resolver.rb +54 -0
  73. data/lib/reviewer/tool/settings.rb +107 -56
  74. data/lib/reviewer/tool/test_file_mapper.rb +73 -0
  75. data/lib/reviewer/tool/timing.rb +78 -0
  76. data/lib/reviewer/tool.rb +88 -47
  77. data/lib/reviewer/tools.rb +47 -33
  78. data/lib/reviewer/version.rb +1 -1
  79. data/lib/reviewer.rb +114 -54
  80. data/reviewer.gemspec +21 -20
  81. data/structure.svg +1 -0
  82. metadata +113 -148
  83. data/.ruby-version +0 -1
  84. data/lib/reviewer/command/string/verbosity.rb +0 -51
  85. data/lib/reviewer/command/verbosity.rb +0 -65
  86. data/lib/reviewer/conversions.rb +0 -27
  87. data/lib/reviewer/guidance.rb +0 -73
  88. data/lib/reviewer/keywords/git/staged.rb +0 -48
  89. data/lib/reviewer/keywords/git.rb +0 -14
  90. data/lib/reviewer/keywords.rb +0 -9
  91. data/lib/reviewer/loader.rb +0 -59
  92. data/lib/reviewer/printer.rb +0 -25
  93. data/lib/reviewer/runner/strategies/quiet.rb +0 -90
data/Gemfile.lock CHANGED
@@ -1,118 +1,340 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- reviewer (0.1.4)
5
- colorize
6
- slop
4
+ reviewer (1.0.0)
5
+ benchmark (~> 0.5)
6
+ pstore (~> 0.2)
7
+ rainbow (~> 3.1)
8
+ ruby-progressbar (~> 1.13)
9
+ slop (~> 4.10)
7
10
 
8
11
  GEM
9
12
  remote: https://rubygems.org/
10
13
  specs:
11
- ast (2.4.2)
12
- bundler-audit (0.8.0)
13
- bundler (>= 1.2.0, < 3)
14
+ activesupport (8.1.1)
15
+ base64
16
+ bigdecimal
17
+ concurrent-ruby (~> 1.0, >= 1.3.1)
18
+ connection_pool (>= 2.2.5)
19
+ drb
20
+ i18n (>= 1.6, < 2)
21
+ json
22
+ logger (>= 1.4.2)
23
+ minitest (>= 5.1)
24
+ securerandom (>= 0.3)
25
+ tzinfo (~> 2.0, >= 2.0.5)
26
+ uri (>= 0.13.1)
27
+ addressable (2.8.8)
28
+ public_suffix (>= 2.0.2, < 8.0)
29
+ arrayfields (4.9.2)
30
+ ast (2.4.3)
31
+ axiom-types (0.1.1)
32
+ descendants_tracker (~> 0.0.4)
33
+ ice_nine (~> 0.11.0)
34
+ thread_safe (~> 0.3, >= 0.3.1)
35
+ base64 (0.3.0)
36
+ benchmark (0.5.0)
37
+ bigdecimal (3.3.1)
38
+ brakeman (7.1.1)
39
+ racc
40
+ bundler-audit (0.9.3)
41
+ bundler (>= 1.2.0)
14
42
  thor (~> 1.0)
15
- codecov (0.5.2)
16
- simplecov (>= 0.15, < 0.22)
43
+ cane (2.6.2)
44
+ parallel
45
+ chronic (0.10.2)
46
+ churn (1.0.8)
47
+ chronic (>= 0.2.3)
48
+ hirb
49
+ main
50
+ ruby_parser (~> 3.0)
51
+ sexp_processor (~> 4.1)
52
+ code_analyzer (0.5.5)
53
+ sexp_processor
54
+ code_metrics (0.1.3)
17
55
  coderay (1.1.3)
18
- colorize (0.8.1)
19
- dead_end (1.1.7)
20
- docile (1.4.0)
56
+ coercible (1.0.0)
57
+ descendants_tracker (~> 0.0.1)
58
+ concurrent-ruby (1.3.6)
59
+ connection_pool (3.0.2)
60
+ csv (3.3.5)
61
+ date (3.5.1)
62
+ debride (1.14.0)
63
+ path_expander (~> 2.0)
64
+ prism (~> 1.5)
65
+ sexp_processor (~> 4.17)
66
+ descendants_tracker (0.0.4)
67
+ thread_safe (~> 0.3, >= 0.3.1)
68
+ docile (1.4.1)
69
+ drb (2.2.3)
70
+ dry-configurable (1.3.0)
71
+ dry-core (~> 1.1)
72
+ zeitwerk (~> 2.6)
73
+ dry-core (1.1.0)
74
+ concurrent-ruby (~> 1.0)
75
+ logger
76
+ zeitwerk (~> 2.6)
77
+ dry-inflector (1.2.0)
78
+ dry-initializer (3.2.0)
79
+ dry-logic (1.6.0)
80
+ bigdecimal
81
+ concurrent-ruby (~> 1.0)
82
+ dry-core (~> 1.1)
83
+ zeitwerk (~> 2.6)
84
+ dry-schema (1.14.1)
85
+ concurrent-ruby (~> 1.0)
86
+ dry-configurable (~> 1.0, >= 1.0.1)
87
+ dry-core (~> 1.1)
88
+ dry-initializer (~> 3.2)
89
+ dry-logic (~> 1.5)
90
+ dry-types (~> 1.8)
91
+ zeitwerk (~> 2.6)
92
+ dry-types (1.8.3)
93
+ bigdecimal (~> 3.0)
94
+ concurrent-ruby (~> 1.0)
95
+ dry-core (~> 1.0)
96
+ dry-inflector (~> 1.0)
97
+ dry-logic (~> 1.4)
98
+ zeitwerk (~> 2.6)
99
+ erb (5.1.3)
100
+ erubi (1.13.1)
21
101
  erubis (2.7.0)
22
- flay (2.12.1)
23
- erubis (~> 2.7.0)
24
- path_expander (~> 1.0)
25
- ruby_parser (~> 3.0)
102
+ fasterer (0.11.0)
103
+ ruby_parser (>= 3.19.1)
104
+ fattr (2.4.0)
105
+ flay (2.14.0)
106
+ erubi (~> 1.10)
107
+ path_expander (~> 2.0)
108
+ prism (~> 1.5)
26
109
  sexp_processor (~> 4.0)
27
- flog (4.6.4)
28
- path_expander (~> 1.0)
29
- ruby_parser (~> 3.1, > 3.1.0)
110
+ flog (4.9.0)
111
+ path_expander (~> 2.0)
112
+ prism (~> 1.5)
30
113
  sexp_processor (~> 4.8)
114
+ hirb (0.7.3)
115
+ i18n (1.14.7)
116
+ concurrent-ruby (~> 1.0)
117
+ ice_nine (0.11.2)
31
118
  inch (0.8.0)
32
119
  pry
33
120
  sparkr (>= 0.2.0)
34
121
  term-ansicolor
35
122
  yard (~> 0.9.12)
36
- kwalify (0.7.2)
37
- method_source (1.0.0)
38
- minitest (5.14.4)
39
- minitest-color (0.0.2)
40
- minitest (~> 5)
41
- parallel (1.20.1)
42
- parser (3.0.2.0)
123
+ io-console (0.8.2)
124
+ json (2.18.0)
125
+ language_server-protocol (3.17.0.5)
126
+ launchy (2.5.2)
127
+ addressable (~> 2.8)
128
+ license_finder (7.2.1)
129
+ bundler
130
+ csv (~> 3.2)
131
+ rubyzip (>= 1, < 3)
132
+ thor (~> 1.2)
133
+ tomlrb (>= 1.3, < 2.1)
134
+ with_env (= 1.1.0)
135
+ xml-simple (~> 1.1.9)
136
+ lint_roller (1.1.0)
137
+ logger (1.7.0)
138
+ main (6.4.0)
139
+ arrayfields (~> 4.9, >= 4.9.2)
140
+ chronic (~> 0.10, >= 0.10.2)
141
+ fattr (~> 2.4, >= 2.4.0)
142
+ map (~> 6.6, >= 6.6.0)
143
+ map (6.6.0)
144
+ method_source (1.1.0)
145
+ metric_fu (4.13.0)
146
+ cane (~> 2.5, >= 2.5.2)
147
+ churn (~> 1.0, >= 1.0.2)
148
+ code_metrics (~> 0.1)
149
+ coderay
150
+ flay (~> 2.1, >= 2.0.1)
151
+ flog (~> 4.1, >= 4.1.1)
152
+ launchy (~> 2.0)
153
+ metric_fu-Saikuro (~> 1.1, >= 1.1.3)
154
+ multi_json
155
+ rails_best_practices (~> 1.14, >= 1.14.3)
156
+ redcard
157
+ reek (>= 5.4.0)
158
+ roodi (~> 5.0.0)
159
+ metric_fu-Saikuro (1.1.3)
160
+ minitest (5.27.0)
161
+ minitest-heat (2.1.0)
162
+ minitest
163
+ mize (0.6.1)
164
+ multi_json (1.18.0)
165
+ parallel (1.27.0)
166
+ parser (3.3.10.0)
43
167
  ast (~> 2.4.1)
44
- path_expander (1.1.0)
45
- pry (0.14.1)
168
+ racc
169
+ path_expander (2.0.0)
170
+ prism (1.7.0)
171
+ pry (0.15.2)
46
172
  coderay (~> 1.1)
47
173
  method_source (~> 1.0)
48
- psych (3.3.2)
49
- rainbow (3.0.0)
50
- rake (13.0.6)
51
- reek (6.0.5)
52
- kwalify (~> 0.7.0)
53
- parser (~> 3.0.0)
54
- psych (>= 3.1, < 5.0)
174
+ pstore (0.2.0)
175
+ psych (5.3.1)
176
+ date
177
+ stringio
178
+ public_suffix (7.0.0)
179
+ racc (1.8.1)
180
+ rails_best_practices (1.23.3)
181
+ activesupport
182
+ code_analyzer (~> 0.5.5)
183
+ erubis
184
+ i18n
185
+ json
186
+ require_all (~> 3.0)
187
+ ruby-progressbar
188
+ rainbow (3.1.1)
189
+ rake (13.3.1)
190
+ rdoc (7.1.0)
191
+ erb
192
+ psych (>= 4.0.0)
193
+ tsort
194
+ readline (0.0.4)
195
+ reline
196
+ redcard (1.1.0)
197
+ reek (6.5.0)
198
+ dry-schema (~> 1.13)
199
+ logger (~> 1.6)
200
+ parser (~> 3.3.0)
55
201
  rainbow (>= 2.0, < 4.0)
56
- regexp_parser (2.1.1)
57
- rexml (3.2.5)
58
- rubocop (1.18.4)
202
+ rexml (~> 3.1)
203
+ regexp_parser (2.11.3)
204
+ reline (0.6.3)
205
+ io-console (~> 0.5)
206
+ require_all (3.0.0)
207
+ rexml (3.4.4)
208
+ roodi (5.0.0)
209
+ ruby_parser (~> 3.2, >= 3.2.2)
210
+ rubocop (1.81.7)
211
+ json (~> 2.3)
212
+ language_server-protocol (~> 3.17.0.2)
213
+ lint_roller (~> 1.1.0)
59
214
  parallel (~> 1.10)
60
- parser (>= 3.0.0.0)
215
+ parser (>= 3.3.0.2)
61
216
  rainbow (>= 2.2.2, < 4.0)
62
- regexp_parser (>= 1.8, < 3.0)
63
- rexml
64
- rubocop-ast (>= 1.8.0, < 2.0)
217
+ regexp_parser (>= 2.9.3, < 3.0)
218
+ rubocop-ast (>= 1.47.1, < 2.0)
65
219
  ruby-progressbar (~> 1.7)
66
- unicode-display_width (>= 1.4.0, < 3.0)
67
- rubocop-ast (1.8.0)
68
- parser (>= 3.0.1.1)
69
- rubocop-minitest (0.14.0)
70
- rubocop (>= 0.90, < 2.0)
71
- rubocop-rake (0.6.0)
72
- rubocop (~> 1.0)
73
- ruby-progressbar (1.11.0)
74
- ruby_parser (3.16.0)
75
- sexp_processor (~> 4.15, >= 4.15.1)
76
- sexp_processor (4.15.3)
77
- simplecov (0.21.2)
220
+ unicode-display_width (>= 2.4.0, < 4.0)
221
+ rubocop-ast (1.48.0)
222
+ parser (>= 3.3.7.2)
223
+ prism (~> 1.4)
224
+ rubocop-minitest (0.38.2)
225
+ lint_roller (~> 1.1)
226
+ rubocop (>= 1.75.0, < 2.0)
227
+ rubocop-ast (>= 1.38.0, < 2.0)
228
+ rubocop-performance (1.26.1)
229
+ lint_roller (~> 1.1)
230
+ rubocop (>= 1.75.0, < 2.0)
231
+ rubocop-ast (>= 1.47.1, < 2.0)
232
+ rubocop-rake (0.7.1)
233
+ lint_roller (~> 1.1)
234
+ rubocop (>= 1.72.1)
235
+ ruby-progressbar (1.13.0)
236
+ ruby_parser (3.22.0)
237
+ racc (~> 1.5)
238
+ sexp_processor (~> 4.16)
239
+ rubycritic (4.11.0)
240
+ flay (~> 2.13)
241
+ flog (~> 4.7)
242
+ launchy (>= 2.5.2)
243
+ parser (>= 3.3.0.5)
244
+ rainbow (~> 3.1.1)
245
+ reek (~> 6.5.0, < 7.0)
246
+ rexml
247
+ ruby_parser (~> 3.21)
248
+ simplecov (>= 0.22.0)
249
+ tty-which (~> 0.5.0)
250
+ virtus (~> 2.0)
251
+ rubyzip (2.4.1)
252
+ rufo (0.18.1)
253
+ securerandom (0.4.1)
254
+ sexp_processor (4.17.4)
255
+ simplecov (0.22.0)
78
256
  docile (~> 1.1)
79
257
  simplecov-html (~> 0.11)
80
258
  simplecov_json_formatter (~> 0.1)
81
- simplecov-html (0.12.3)
82
- simplecov_json_formatter (0.1.3)
83
- slop (4.9.1)
259
+ simplecov-html (0.13.2)
260
+ simplecov_json_formatter (0.1.4)
261
+ slop (4.10.1)
84
262
  sparkr (0.4.1)
263
+ standard (1.52.0)
264
+ language_server-protocol (~> 3.17.0.2)
265
+ lint_roller (~> 1.0)
266
+ rubocop (~> 1.81.7)
267
+ standard-custom (~> 1.0.0)
268
+ standard-performance (~> 1.8)
269
+ standard-custom (1.0.2)
270
+ lint_roller (~> 1.0)
271
+ rubocop (~> 1.50)
272
+ standard-performance (1.9.0)
273
+ lint_roller (~> 1.1)
274
+ rubocop-performance (~> 1.26.0)
275
+ stringio (3.2.0)
85
276
  sync (0.5.0)
86
- term-ansicolor (1.7.1)
87
- tins (~> 1.0)
88
- thor (1.1.0)
89
- tins (1.29.1)
277
+ term-ansicolor (1.11.3)
278
+ tins (~> 1)
279
+ thor (1.4.0)
280
+ thread_safe (0.3.6)
281
+ tins (1.51.0)
282
+ bigdecimal
283
+ mize (~> 0.6)
284
+ readline
90
285
  sync
91
- unicode-display_width (2.0.0)
92
- yard (0.9.26)
286
+ tomlrb (2.0.4)
287
+ tsort (0.2.0)
288
+ tty-which (0.5.0)
289
+ tzinfo (2.0.6)
290
+ concurrent-ruby (~> 1.0)
291
+ unicode-display_width (3.2.0)
292
+ unicode-emoji (~> 4.1)
293
+ unicode-emoji (4.2.0)
294
+ uri (1.1.1)
295
+ virtus (2.0.0)
296
+ axiom-types (~> 0.1)
297
+ coercible (~> 1.0)
298
+ descendants_tracker (~> 0.0, >= 0.0.3)
299
+ with_env (1.1.0)
300
+ xml-simple (1.1.9)
301
+ rexml
302
+ yard (0.9.38)
303
+ yardstick (0.9.9)
304
+ yard (~> 0.8, >= 0.8.7.2)
305
+ zeitwerk (2.6.18)
93
306
 
94
307
  PLATFORMS
308
+ arm64-darwin-24
95
309
  ruby
96
- x86_64-darwin-20
97
- x86_64-linux
98
310
 
99
311
  DEPENDENCIES
312
+ brakeman
100
313
  bundler-audit
101
- codecov
102
- dead_end
314
+ debride
315
+ fasterer
103
316
  flay
104
317
  flog
105
318
  inch
106
- minitest
107
- minitest-color
108
- psych (~> 3.3.2)
109
- rake (~> 13.0)
319
+ license_finder
320
+ metric_fu
321
+ minitest (~> 5.27)
322
+ minitest-heat (~> 2.1)
323
+ racc
324
+ rake (~> 13.2)
325
+ rdoc (~> 7.1)
110
326
  reek
111
327
  reviewer!
112
328
  rubocop
113
329
  rubocop-minitest
114
330
  rubocop-rake
115
- simplecov
331
+ rubycritic
332
+ rufo
333
+ simplecov (~> 0.22)
334
+ simplecov_json_formatter (~> 0.1)
335
+ standard (>= 1.35.1)
336
+ yard (~> 0.9)
337
+ yardstick
116
338
 
117
339
  BUNDLED WITH
118
- 2.2.25
340
+ 2.7.2