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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +98 -0
- data/README.md +131 -56
- data/lib/hashira/analysis/finding.rb +4 -0
- data/lib/hashira/churn.rb +10 -2
- data/lib/hashira/ci/accepted.rb +1 -4
- data/lib/hashira/ci/baseline.rb +28 -5
- data/lib/hashira/ci/diff.rb +15 -4
- data/lib/hashira/ci/finding_diff_report.rb +10 -0
- data/lib/hashira/ci/gate.rb +10 -2
- data/lib/hashira/ci/improvement.rb +1 -1
- data/lib/hashira/ci/ratchet.rb +33 -8
- data/lib/hashira/ci/ratchet_report.rb +4 -2
- data/lib/hashira/ci/scope.rb +11 -0
- data/lib/hashira/ci/status.rb +7 -0
- data/lib/hashira/cli/arguments.rb +6 -1
- data/lib/hashira/cli/fail_on.rb +12 -2
- data/lib/hashira/cli/flags.rb +13 -0
- data/lib/hashira/cli/needs.rb +34 -0
- data/lib/hashira/cli/options.rb +14 -3
- data/lib/hashira/cli/run.rb +32 -5
- data/lib/hashira/cli/top.rb +13 -0
- data/lib/hashira/cli/usage.rb +5 -1
- data/lib/hashira/cli.rb +24 -5
- data/lib/hashira/coupling/metric.rb +7 -1
- data/lib/hashira/diagram/dot.rb +9 -6
- data/lib/hashira/diagram/mermaid.rb +11 -8
- data/lib/hashira/diagram/source.rb +5 -2
- data/lib/hashira/pipeline.rb +15 -19
- data/lib/hashira/project.rb +19 -5
- data/lib/hashira/report/columns.rb +48 -0
- data/lib/hashira/report/complexity_table.rb +12 -16
- data/lib/hashira/report/dependency_map.rb +1 -0
- data/lib/hashira/report/hotspot_table.rb +6 -14
- data/lib/hashira/report/json.rb +9 -2
- data/lib/hashira/report/metrics_table.rb +19 -20
- data/lib/hashira/report/notices.rb +37 -0
- data/lib/hashira/report/phrases.rb +2 -0
- data/lib/hashira/report/smell_phrases.rb +6 -0
- data/lib/hashira/report/text.rb +24 -9
- data/lib/hashira/report/view.rb +4 -1
- data/lib/hashira/smells/boundary_sprawl.rb +43 -0
- data/lib/hashira/smells/census.rb +4 -1
- data/lib/hashira/smells/contexts.rb +1 -1
- data/lib/hashira/smells/feature_envy.rb +3 -1
- data/lib/hashira/smells/foreign.rb +131 -0
- data/lib/hashira/smells/ownership.rb +55 -0
- data/lib/hashira/smells/report.rb +10 -2
- data/lib/hashira/trees.rb +22 -0
- data/lib/hashira/version.rb +1 -1
- data/lib/hashira.rb +6 -0
- metadata +17 -6
data/lib/hashira/version.rb
CHANGED
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.
|
|
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,
|
|
14
|
-
from the AST, then ranks files by cost against git churn. Findings
|
|
15
|
-
file-level evidence, and a baseline ratchets edges and findings for
|
|
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
|
|
184
|
+
summary: Coupling, cognitive-complexity, duplication and code-smell metrics for Ruby,
|
|
185
|
+
via Prism
|
|
175
186
|
test_files: []
|