spoom 1.5.0 → 1.7.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -0
  3. data/lib/spoom/backtrace_filter/minitest.rb +3 -4
  4. data/lib/spoom/cli/deadcode.rb +1 -2
  5. data/lib/spoom/cli/helper.rb +41 -31
  6. data/lib/spoom/cli/srb/assertions.rb +48 -0
  7. data/lib/spoom/cli/srb/bump.rb +1 -2
  8. data/lib/spoom/cli/srb/coverage.rb +1 -1
  9. data/lib/spoom/cli/srb/metrics.rb +68 -0
  10. data/lib/spoom/cli/srb/sigs.rb +209 -0
  11. data/lib/spoom/cli/srb/tc.rb +16 -1
  12. data/lib/spoom/cli/srb.rb +16 -4
  13. data/lib/spoom/cli.rb +1 -2
  14. data/lib/spoom/colors.rb +2 -6
  15. data/lib/spoom/context/bundle.rb +8 -9
  16. data/lib/spoom/context/exec.rb +3 -6
  17. data/lib/spoom/context/file_system.rb +12 -19
  18. data/lib/spoom/context/git.rb +14 -19
  19. data/lib/spoom/context/sorbet.rb +14 -27
  20. data/lib/spoom/context.rb +4 -8
  21. data/lib/spoom/counters.rb +22 -0
  22. data/lib/spoom/coverage/d3/base.rb +6 -8
  23. data/lib/spoom/coverage/d3/circle_map.rb +6 -16
  24. data/lib/spoom/coverage/d3/pie.rb +14 -19
  25. data/lib/spoom/coverage/d3/timeline.rb +46 -47
  26. data/lib/spoom/coverage/d3.rb +2 -4
  27. data/lib/spoom/coverage/report.rb +41 -79
  28. data/lib/spoom/coverage/snapshot.rb +8 -14
  29. data/lib/spoom/coverage.rb +3 -5
  30. data/lib/spoom/deadcode/definition.rb +12 -14
  31. data/lib/spoom/deadcode/erb.rb +10 -8
  32. data/lib/spoom/deadcode/index.rb +21 -25
  33. data/lib/spoom/deadcode/indexer.rb +5 -6
  34. data/lib/spoom/deadcode/plugins/action_mailer.rb +2 -3
  35. data/lib/spoom/deadcode/plugins/action_mailer_preview.rb +2 -3
  36. data/lib/spoom/deadcode/plugins/actionpack.rb +19 -22
  37. data/lib/spoom/deadcode/plugins/active_model.rb +2 -3
  38. data/lib/spoom/deadcode/plugins/active_record.rb +62 -53
  39. data/lib/spoom/deadcode/plugins/active_support.rb +3 -2
  40. data/lib/spoom/deadcode/plugins/base.rb +29 -32
  41. data/lib/spoom/deadcode/plugins/graphql.rb +2 -3
  42. data/lib/spoom/deadcode/plugins/minitest.rb +4 -4
  43. data/lib/spoom/deadcode/plugins/namespaces.rb +5 -5
  44. data/lib/spoom/deadcode/plugins/rails.rb +5 -5
  45. data/lib/spoom/deadcode/plugins/rubocop.rb +5 -5
  46. data/lib/spoom/deadcode/plugins/ruby.rb +3 -4
  47. data/lib/spoom/deadcode/plugins/sorbet.rb +12 -6
  48. data/lib/spoom/deadcode/plugins/thor.rb +2 -3
  49. data/lib/spoom/deadcode/plugins.rb +23 -31
  50. data/lib/spoom/deadcode/remover.rb +58 -79
  51. data/lib/spoom/deadcode/send.rb +2 -8
  52. data/lib/spoom/file_collector.rb +11 -19
  53. data/lib/spoom/file_tree.rb +36 -51
  54. data/lib/spoom/location.rb +9 -20
  55. data/lib/spoom/model/builder.rb +54 -17
  56. data/lib/spoom/model/model.rb +71 -74
  57. data/lib/spoom/model/namespace_visitor.rb +4 -3
  58. data/lib/spoom/model/reference.rb +4 -8
  59. data/lib/spoom/model/references_visitor.rb +50 -30
  60. data/lib/spoom/parse.rb +4 -4
  61. data/lib/spoom/poset.rb +22 -24
  62. data/lib/spoom/printer.rb +10 -13
  63. data/lib/spoom/rbs.rb +77 -0
  64. data/lib/spoom/sorbet/config.rb +17 -24
  65. data/lib/spoom/sorbet/errors.rb +87 -45
  66. data/lib/spoom/sorbet/lsp/base.rb +10 -16
  67. data/lib/spoom/sorbet/lsp/errors.rb +8 -16
  68. data/lib/spoom/sorbet/lsp/structures.rb +65 -91
  69. data/lib/spoom/sorbet/lsp.rb +20 -22
  70. data/lib/spoom/sorbet/metrics/code_metrics_visitor.rb +236 -0
  71. data/lib/spoom/sorbet/metrics/metrics_file_parser.rb +34 -0
  72. data/lib/spoom/sorbet/metrics.rb +2 -32
  73. data/lib/spoom/sorbet/sigils.rb +16 -23
  74. data/lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb +242 -0
  75. data/lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb +123 -0
  76. data/lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb +293 -0
  77. data/lib/spoom/sorbet/translate/strip_sorbet_sigs.rb +23 -0
  78. data/lib/spoom/sorbet/translate/translator.rb +71 -0
  79. data/lib/spoom/sorbet/translate.rb +49 -0
  80. data/lib/spoom/sorbet.rb +6 -12
  81. data/lib/spoom/source/rewriter.rb +167 -0
  82. data/lib/spoom/source.rb +4 -0
  83. data/lib/spoom/timeline.rb +4 -6
  84. data/lib/spoom/version.rb +1 -1
  85. data/lib/spoom/visitor.rb +298 -151
  86. data/lib/spoom.rb +4 -3
  87. data/rbi/spoom.rbi +3567 -0
  88. metadata +62 -8
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Terrasa
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-09-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -94,6 +93,48 @@ dependencies:
94
93
  - - ">="
95
94
  - !ruby/object:Gem::Version
96
95
  version: 0.28.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: rbi
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.3.3
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 0.3.3
110
+ - !ruby/object:Gem::Dependency
111
+ name: rbs
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 4.0.0.dev.4
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 4.0.0.dev.4
124
+ - !ruby/object:Gem::Dependency
125
+ name: rexml
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 3.2.6
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 3.2.6
97
138
  - !ruby/object:Gem::Dependency
98
139
  name: sorbet-static-and-runtime
99
140
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +163,6 @@ dependencies:
122
163
  - - ">="
123
164
  - !ruby/object:Gem::Version
124
165
  version: 0.19.2
125
- description:
126
166
  email:
127
167
  - ruby@shopify.com
128
168
  executables:
@@ -141,9 +181,12 @@ files:
141
181
  - lib/spoom/cli/deadcode.rb
142
182
  - lib/spoom/cli/helper.rb
143
183
  - lib/spoom/cli/srb.rb
184
+ - lib/spoom/cli/srb/assertions.rb
144
185
  - lib/spoom/cli/srb/bump.rb
145
186
  - lib/spoom/cli/srb/coverage.rb
146
187
  - lib/spoom/cli/srb/lsp.rb
188
+ - lib/spoom/cli/srb/metrics.rb
189
+ - lib/spoom/cli/srb/sigs.rb
147
190
  - lib/spoom/cli/srb/tc.rb
148
191
  - lib/spoom/colors.rb
149
192
  - lib/spoom/context.rb
@@ -152,6 +195,7 @@ files:
152
195
  - lib/spoom/context/file_system.rb
153
196
  - lib/spoom/context/git.rb
154
197
  - lib/spoom/context/sorbet.rb
198
+ - lib/spoom/counters.rb
155
199
  - lib/spoom/coverage.rb
156
200
  - lib/spoom/coverage/d3.rb
157
201
  - lib/spoom/coverage/d3/base.rb
@@ -198,6 +242,7 @@ files:
198
242
  - lib/spoom/parse.rb
199
243
  - lib/spoom/poset.rb
200
244
  - lib/spoom/printer.rb
245
+ - lib/spoom/rbs.rb
201
246
  - lib/spoom/sorbet.rb
202
247
  - lib/spoom/sorbet/config.rb
203
248
  - lib/spoom/sorbet/errors.rb
@@ -206,10 +251,21 @@ files:
206
251
  - lib/spoom/sorbet/lsp/errors.rb
207
252
  - lib/spoom/sorbet/lsp/structures.rb
208
253
  - lib/spoom/sorbet/metrics.rb
254
+ - lib/spoom/sorbet/metrics/code_metrics_visitor.rb
255
+ - lib/spoom/sorbet/metrics/metrics_file_parser.rb
209
256
  - lib/spoom/sorbet/sigils.rb
257
+ - lib/spoom/sorbet/translate.rb
258
+ - lib/spoom/sorbet/translate/rbs_comments_to_sorbet_sigs.rb
259
+ - lib/spoom/sorbet/translate/sorbet_assertions_to_rbs_comments.rb
260
+ - lib/spoom/sorbet/translate/sorbet_sigs_to_rbs_comments.rb
261
+ - lib/spoom/sorbet/translate/strip_sorbet_sigs.rb
262
+ - lib/spoom/sorbet/translate/translator.rb
263
+ - lib/spoom/source.rb
264
+ - lib/spoom/source/rewriter.rb
210
265
  - lib/spoom/timeline.rb
211
266
  - lib/spoom/version.rb
212
267
  - lib/spoom/visitor.rb
268
+ - rbi/spoom.rbi
213
269
  - templates/card.erb
214
270
  - templates/card_snapshot.erb
215
271
  - templates/page.erb
@@ -218,7 +274,6 @@ licenses:
218
274
  - MIT
219
275
  metadata:
220
276
  allowed_push_host: https://rubygems.org
221
- post_install_message:
222
277
  rdoc_options: []
223
278
  require_paths:
224
279
  - lib
@@ -226,15 +281,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
226
281
  requirements:
227
282
  - - ">="
228
283
  - !ruby/object:Gem::Version
229
- version: '3.1'
284
+ version: '3.2'
230
285
  required_rubygems_version: !ruby/object:Gem::Requirement
231
286
  requirements:
232
287
  - - ">="
233
288
  - !ruby/object:Gem::Version
234
289
  version: '0'
235
290
  requirements: []
236
- rubygems_version: 3.5.18
237
- signing_key:
291
+ rubygems_version: 3.6.9
238
292
  specification_version: 4
239
293
  summary: Useful tools for Sorbet enthusiasts.
240
294
  test_files: []