hashira 0.5.1 → 0.7.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +98 -0
  3. data/README.md +131 -56
  4. data/lib/hashira/analysis/finding.rb +4 -0
  5. data/lib/hashira/churn.rb +10 -2
  6. data/lib/hashira/ci/accepted.rb +1 -4
  7. data/lib/hashira/ci/baseline.rb +28 -5
  8. data/lib/hashira/ci/diff.rb +15 -4
  9. data/lib/hashira/ci/finding_diff_report.rb +10 -0
  10. data/lib/hashira/ci/gate.rb +10 -2
  11. data/lib/hashira/ci/improvement.rb +1 -1
  12. data/lib/hashira/ci/ratchet.rb +33 -8
  13. data/lib/hashira/ci/ratchet_report.rb +4 -2
  14. data/lib/hashira/ci/scope.rb +11 -0
  15. data/lib/hashira/ci/status.rb +7 -0
  16. data/lib/hashira/cli/arguments.rb +6 -1
  17. data/lib/hashira/cli/fail_on.rb +12 -2
  18. data/lib/hashira/cli/flags.rb +13 -0
  19. data/lib/hashira/cli/needs.rb +34 -0
  20. data/lib/hashira/cli/options.rb +14 -3
  21. data/lib/hashira/cli/run.rb +32 -5
  22. data/lib/hashira/cli/top.rb +13 -0
  23. data/lib/hashira/cli/usage.rb +5 -1
  24. data/lib/hashira/cli.rb +24 -5
  25. data/lib/hashira/coupling/metric.rb +7 -1
  26. data/lib/hashira/diagram/dot.rb +9 -6
  27. data/lib/hashira/diagram/mermaid.rb +11 -8
  28. data/lib/hashira/diagram/source.rb +5 -2
  29. data/lib/hashira/pipeline.rb +15 -19
  30. data/lib/hashira/project.rb +19 -5
  31. data/lib/hashira/report/columns.rb +48 -0
  32. data/lib/hashira/report/complexity_table.rb +12 -16
  33. data/lib/hashira/report/dependency_map.rb +1 -0
  34. data/lib/hashira/report/hotspot_table.rb +6 -14
  35. data/lib/hashira/report/json.rb +9 -2
  36. data/lib/hashira/report/metrics_table.rb +19 -20
  37. data/lib/hashira/report/notices.rb +37 -0
  38. data/lib/hashira/report/phrases.rb +2 -0
  39. data/lib/hashira/report/smell_phrases.rb +6 -0
  40. data/lib/hashira/report/text.rb +24 -9
  41. data/lib/hashira/report/view.rb +4 -1
  42. data/lib/hashira/smells/boundary_sprawl.rb +43 -0
  43. data/lib/hashira/smells/census.rb +4 -1
  44. data/lib/hashira/smells/contexts.rb +1 -1
  45. data/lib/hashira/smells/feature_envy.rb +3 -1
  46. data/lib/hashira/smells/foreign.rb +131 -0
  47. data/lib/hashira/smells/ownership.rb +55 -0
  48. data/lib/hashira/smells/report.rb +10 -2
  49. data/lib/hashira/trees.rb +22 -0
  50. data/lib/hashira/version.rb +1 -1
  51. data/lib/hashira.rb +6 -0
  52. metadata +17 -6
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hashira
4
- VERSION = "0.5.1"
4
+ VERSION = "0.7.0"
5
5
  end
data/lib/hashira.rb CHANGED
@@ -43,6 +43,8 @@ require_relative "hashira/ci/gate"
43
43
  require_relative "hashira/ci/improvement"
44
44
  require_relative "hashira/ci/ratchet"
45
45
  require_relative "hashira/ci/ratchet_report"
46
+ require_relative "hashira/ci/scope"
47
+ require_relative "hashira/ci/status"
46
48
  require_relative "hashira/cli"
47
49
  require_relative "hashira/cli/arguments"
48
50
  require_relative "hashira/cli/command_line"
@@ -50,6 +52,7 @@ require_relative "hashira/cli/fail_on"
50
52
  require_relative "hashira/cli/flag"
51
53
  require_relative "hashira/cli/flags"
52
54
  require_relative "hashira/cli/format"
55
+ require_relative "hashira/cli/needs"
53
56
  require_relative "hashira/cli/options"
54
57
  require_relative "hashira/cli/package_by"
55
58
  require_relative "hashira/cli/run"
@@ -118,6 +121,7 @@ require_relative "hashira/hotspots/file_cost"
118
121
  require_relative "hashira/hotspots/rollup"
119
122
  require_relative "hashira/pipeline"
120
123
  require_relative "hashira/project"
124
+ require_relative "hashira/report/columns"
121
125
  require_relative "hashira/report/complexity_table"
122
126
  require_relative "hashira/report/dependency_map"
123
127
  require_relative "hashira/report/finding_lines"
@@ -125,6 +129,7 @@ require_relative "hashira/report/graph_payload"
125
129
  require_relative "hashira/report/hotspot_table"
126
130
  require_relative "hashira/report/json"
127
131
  require_relative "hashira/report/metrics_table"
132
+ require_relative "hashira/report/notices"
128
133
  require_relative "hashira/report/phrases"
129
134
  require_relative "hashira/report/smell_phrases"
130
135
  require_relative "hashira/report/text"
@@ -149,4 +154,5 @@ require_relative "hashira/smells/scope"
149
154
  require_relative "hashira/smells/too_many_instance_variables"
150
155
  require_relative "hashira/smells/utility_function"
151
156
  require_relative "hashira/smells/visibility"
157
+ require_relative "hashira/trees"
152
158
  require_relative "hashira/version"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giacomo GK
@@ -10,10 +10,10 @@ cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: Measures package coupling (Ca/Ce/instability, SDP violations, cycles),
13
- per-method cognitive complexity, and near-miss code duplication in a Ruby codebase
14
- from the AST, then ranks files by cost against git churn. Findings are backed by
15
- file-level evidence, and a baseline ratchets edges and findings for CI — direction,
16
- not a score.
13
+ per-method cognitive complexity, near-miss code duplication, and twelve design smells
14
+ in a Ruby codebase from the AST, then ranks files by cost against git churn. Findings
15
+ are backed by file-level evidence, and a baseline ratchets edges and findings for
16
+ CI — direction, not a score.
17
17
  email:
18
18
  - giaco@hey.com
19
19
  executables:
@@ -40,6 +40,8 @@ files:
40
40
  - lib/hashira/ci/improvement.rb
41
41
  - lib/hashira/ci/ratchet.rb
42
42
  - lib/hashira/ci/ratchet_report.rb
43
+ - lib/hashira/ci/scope.rb
44
+ - lib/hashira/ci/status.rb
43
45
  - lib/hashira/cli.rb
44
46
  - lib/hashira/cli/arguments.rb
45
47
  - lib/hashira/cli/command_line.rb
@@ -47,10 +49,12 @@ files:
47
49
  - lib/hashira/cli/flag.rb
48
50
  - lib/hashira/cli/flags.rb
49
51
  - lib/hashira/cli/format.rb
52
+ - lib/hashira/cli/needs.rb
50
53
  - lib/hashira/cli/options.rb
51
54
  - lib/hashira/cli/package_by.rb
52
55
  - lib/hashira/cli/run.rb
53
56
  - lib/hashira/cli/skip.rb
57
+ - lib/hashira/cli/top.rb
54
58
  - lib/hashira/cli/usage.rb
55
59
  - lib/hashira/complexity/boolean_run.rb
56
60
  - lib/hashira/complexity/cognitive_score.rb
@@ -115,6 +119,7 @@ files:
115
119
  - lib/hashira/hotspots/rollup.rb
116
120
  - lib/hashira/pipeline.rb
117
121
  - lib/hashira/project.rb
122
+ - lib/hashira/report/columns.rb
118
123
  - lib/hashira/report/complexity_table.rb
119
124
  - lib/hashira/report/dependency_map.rb
120
125
  - lib/hashira/report/finding_lines.rb
@@ -122,10 +127,12 @@ files:
122
127
  - lib/hashira/report/hotspot_table.rb
123
128
  - lib/hashira/report/json.rb
124
129
  - lib/hashira/report/metrics_table.rb
130
+ - lib/hashira/report/notices.rb
125
131
  - lib/hashira/report/phrases.rb
126
132
  - lib/hashira/report/smell_phrases.rb
127
133
  - lib/hashira/report/text.rb
128
134
  - lib/hashira/report/view.rb
135
+ - lib/hashira/smells/boundary_sprawl.rb
129
136
  - lib/hashira/smells/census.rb
130
137
  - lib/hashira/smells/check.rb
131
138
  - lib/hashira/smells/conditions.rb
@@ -134,10 +141,12 @@ files:
134
141
  - lib/hashira/smells/data_clump.rb
135
142
  - lib/hashira/smells/duplicate_method_call.rb
136
143
  - lib/hashira/smells/feature_envy.rb
144
+ - lib/hashira/smells/foreign.rb
137
145
  - lib/hashira/smells/instance_variable_assumption.rb
138
146
  - lib/hashira/smells/manual_dispatch.rb
139
147
  - lib/hashira/smells/module_initialize.rb
140
148
  - lib/hashira/smells/nil_check.rb
149
+ - lib/hashira/smells/ownership.rb
141
150
  - lib/hashira/smells/param_check.rb
142
151
  - lib/hashira/smells/refs.rb
143
152
  - lib/hashira/smells/repeated_conditional.rb
@@ -146,6 +155,7 @@ files:
146
155
  - lib/hashira/smells/too_many_instance_variables.rb
147
156
  - lib/hashira/smells/utility_function.rb
148
157
  - lib/hashira/smells/visibility.rb
158
+ - lib/hashira/trees.rb
149
159
  - lib/hashira/version.rb
150
160
  homepage: https://github.com/giacope/hashira
151
161
  licenses:
@@ -171,5 +181,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
181
  requirements: []
172
182
  rubygems_version: 4.0.17
173
183
  specification_version: 4
174
- summary: Coupling, cognitive-complexity, and duplication metrics for Ruby, via Prism
184
+ summary: Coupling, cognitive-complexity, duplication and code-smell metrics for Ruby,
185
+ via Prism
175
186
  test_files: []