skunk 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +53 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +47 -0
- data/.github/workflows/main.yml +74 -4
- data/.github/workflows/skunk.yml +8 -3
- data/.gitignore +1 -0
- data/.rubocop_todo.yml +39 -17
- data/CHANGELOG.md +23 -16
- data/CODEOWNERS +5 -0
- data/Gemfile-Ruby-2-4 +10 -0
- data/README.md +64 -20
- data/fastruby-logo.png +0 -0
- data/lib/skunk.rb +1 -1
- data/lib/skunk/cli/application.rb +34 -4
- data/lib/skunk/cli/commands/base.rb +2 -0
- data/lib/skunk/cli/commands/compare.rb +10 -6
- data/lib/skunk/cli/commands/compare_score.rb +39 -0
- data/lib/skunk/cli/commands/default.rb +22 -1
- data/lib/skunk/cli/commands/help.rb +11 -1
- data/lib/skunk/cli/commands/status_reporter.rb +16 -13
- data/lib/skunk/cli/commands/status_sharer.rb +100 -0
- data/lib/skunk/cli/options/argv.rb +11 -0
- data/lib/skunk/rubycritic/analysed_module.rb +29 -9
- data/lib/skunk/rubycritic/analysed_modules_collection.rb +2 -2
- data/lib/skunk/version.rb +1 -1
- data/logo.png +0 -0
- data/samples/engines/spec/nested_sample_spec.rb +5 -0
- data/samples/rubycritic/analysed_module.rb +9 -9
- data/skunk.gemspec +13 -7
- metadata +100 -28
- data/.travis.yml +0 -5
- data/Gemfile.lock +0 -119
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5df324d3763ea965d25b6eb21bb3b97969d5bb51ea89e64c198d05c81c9afd09
|
4
|
+
data.tar.gz: 98e25d9fc2d2224a286a103bd74f98c97709a6004d785638b43ed08a68302da6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ba5745cb720777d96ece4a927132cfea50eac70eee257a6f24bca3da94e91643a2ee5aaef5bd5bc7b50da00b2da20b024c2789ae26f5ef6297af1cb8d1bd352
|
7
|
+
data.tar.gz: ae78c2425cc2d0ffa2b43ed0774fe3a4ae408d42784e7d1fcb7bc7ae76341cded3266f82c55bb6d814eabc0318378278c2a51b469cd8e097757516650588f0bb
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
name: Bug report
|
3
|
+
about: Create a report to help us improve
|
4
|
+
title: "[BUG] "
|
5
|
+
labels: 'bug'
|
6
|
+
assignees: 'black-bunny-brigade'
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
**IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
|
11
|
+
|
12
|
+
**Before we start...:**
|
13
|
+
|
14
|
+
- [ ] I checked the documentation and found no answer
|
15
|
+
- [ ] I checked to make sure that this issue has not already been filed
|
16
|
+
- [ ] I'm reporting the issue to the correct repository (for multi-repository projects)
|
17
|
+
|
18
|
+
|
19
|
+
**Version, Branch, or Commit:**
|
20
|
+
|
21
|
+
Inform what version, branch, commit of Skunk you are using.
|
22
|
+
|
23
|
+
**Expected behavior:**
|
24
|
+
|
25
|
+
Please include a detailed description of the behavior you were expecting when you encountered this issue.
|
26
|
+
|
27
|
+
**Actual behavior:**
|
28
|
+
|
29
|
+
Please include a detailed description of the actual behavior of the application.
|
30
|
+
|
31
|
+
**Steps to reproduce:**
|
32
|
+
|
33
|
+
How do I achieve this behavior? Use the following format to provide a step-by-step guide:
|
34
|
+
|
35
|
+
1. Step 1: ...
|
36
|
+
2. Step 2: ...
|
37
|
+
|
38
|
+
**Context and environment:**
|
39
|
+
|
40
|
+
Provide any relevant information about your setup (Customize the list accordingly based on what info is relevant to this project)
|
41
|
+
|
42
|
+
1. Version of the software the issue is being opened for.
|
43
|
+
2. Operating System
|
44
|
+
3. Operating System version
|
45
|
+
4. Ruby version
|
46
|
+
|
47
|
+
_Delete any information that is not relevant._
|
48
|
+
|
49
|
+
**Logs**
|
50
|
+
|
51
|
+
Include relevant log snippets or files here.
|
52
|
+
|
53
|
+
**I will abide by the [code of conduct] (https://github.com/fastruby/skunk/blob/master/CODE_OF_CONDUCT.md)**
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Request a new feature
|
4
|
+
title: "[REQUEST]"
|
5
|
+
labels: 'enhancement'
|
6
|
+
assignees: ''
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
**IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
|
11
|
+
|
12
|
+
**Before we start...:**
|
13
|
+
|
14
|
+
- [ ] I checked the documentation and didn't find this feature
|
15
|
+
- [ ] I checked to make sure that this feature has not already been requested
|
16
|
+
|
17
|
+
|
18
|
+
**Branch/Commit:**
|
19
|
+
|
20
|
+
Inform what branch/commit/version of "Skunk" you are using.
|
21
|
+
|
22
|
+
**Describe the feature:**
|
23
|
+
|
24
|
+
Please include a detailed description of the feature you are requesting and any detail on it’s expected behavior.
|
25
|
+
|
26
|
+
> **As a \<role name\>**
|
27
|
+
> **I do \<something\>**
|
28
|
+
> **And then I do \<another action\>**
|
29
|
+
> **And I see \<some result\>**
|
30
|
+
|
31
|
+
**Problem:**
|
32
|
+
|
33
|
+
Please include a detailed description of the problem this feature would solve.
|
34
|
+
|
35
|
+
> **As a \<role name\>**
|
36
|
+
> **I want to \<do something\>**
|
37
|
+
> **So that I can achieve a \<goal\>**
|
38
|
+
|
39
|
+
**Mockups:**
|
40
|
+
|
41
|
+
Include any mockup idea related to the requested feature if it applies.
|
42
|
+
|
43
|
+
**Resources:**
|
44
|
+
|
45
|
+
If you have resources related to the implementation or research for this feature, add them here.
|
46
|
+
|
47
|
+
**I will abide by the [code of conduct](https://github.com/fastruby/skunk/blob/main/CODE_OF_CONDUCT.md)**
|
data/.github/workflows/main.yml
CHANGED
@@ -1,17 +1,87 @@
|
|
1
1
|
# .github/workflows/ci.yml
|
2
2
|
|
3
3
|
name: CI
|
4
|
-
on:
|
4
|
+
on:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- main
|
8
|
+
pull_request:
|
9
|
+
branches:
|
10
|
+
- main
|
11
|
+
|
5
12
|
jobs:
|
6
|
-
test:
|
13
|
+
test-ruby-2-4-x:
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v1
|
18
|
+
- name: Setup Ruby
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: 2.4
|
22
|
+
bundler-cache: true
|
23
|
+
- name: Build and run tests
|
24
|
+
env:
|
25
|
+
BUNDLE_GEMFILE: "Gemfile-Ruby-2-4"
|
26
|
+
run: |
|
27
|
+
gem install bundler
|
28
|
+
bundle install --jobs 4 --retry 3
|
29
|
+
bundle exec rake
|
30
|
+
test-ruby-2-5-x:
|
31
|
+
runs-on: ubuntu-latest
|
32
|
+
|
33
|
+
steps:
|
34
|
+
- uses: actions/checkout@v1
|
35
|
+
- name: Setup Ruby
|
36
|
+
uses: ruby/setup-ruby@v1
|
37
|
+
with:
|
38
|
+
ruby-version: 2.5
|
39
|
+
bundler-cache: true
|
40
|
+
- name: Build and run tests
|
41
|
+
run: |
|
42
|
+
gem install bundler
|
43
|
+
bundle install --jobs 4 --retry 3
|
44
|
+
bundle exec rake
|
45
|
+
test-ruby-2-6-x:
|
46
|
+
runs-on: ubuntu-latest
|
47
|
+
|
48
|
+
steps:
|
49
|
+
- uses: actions/checkout@v1
|
50
|
+
- name: Setup Ruby
|
51
|
+
uses: ruby/setup-ruby@v1
|
52
|
+
with:
|
53
|
+
ruby-version: 2.6
|
54
|
+
bundler-cache: true
|
55
|
+
- name: Build and run tests
|
56
|
+
run: |
|
57
|
+
gem install bundler
|
58
|
+
bundle install --jobs 4 --retry 3
|
59
|
+
bundle exec rake
|
60
|
+
test-ruby-2-7-x:
|
61
|
+
runs-on: ubuntu-latest
|
62
|
+
|
63
|
+
steps:
|
64
|
+
- uses: actions/checkout@v1
|
65
|
+
- name: Setup Ruby
|
66
|
+
uses: ruby/setup-ruby@v1
|
67
|
+
with:
|
68
|
+
ruby-version: 2.7
|
69
|
+
bundler-cache: true
|
70
|
+
- name: Build and run tests
|
71
|
+
run: |
|
72
|
+
gem install bundler
|
73
|
+
bundle install --jobs 4 --retry 3
|
74
|
+
bundle exec rake
|
75
|
+
test-ruby-3-0-x:
|
7
76
|
runs-on: ubuntu-latest
|
8
77
|
|
9
78
|
steps:
|
10
79
|
- uses: actions/checkout@v1
|
11
80
|
- name: Setup Ruby
|
12
|
-
uses:
|
81
|
+
uses: ruby/setup-ruby@v1
|
13
82
|
with:
|
14
|
-
ruby-version:
|
83
|
+
ruby-version: 3.0
|
84
|
+
bundler-cache: true
|
15
85
|
- name: Build and run tests
|
16
86
|
run: |
|
17
87
|
gem install bundler
|
data/.github/workflows/skunk.yml
CHANGED
@@ -11,14 +11,19 @@ jobs:
|
|
11
11
|
uses: actions/setup-ruby@v1
|
12
12
|
with:
|
13
13
|
ruby-version: 2.6.x
|
14
|
+
- name: Run test suite with COVERAGE=true
|
15
|
+
run: |
|
16
|
+
gem install bundler
|
17
|
+
bundle install --jobs 4 --retry 3
|
18
|
+
COVERAGE=true bundle exec rake test
|
14
19
|
- name: Run Skunk on Project
|
15
20
|
run: |
|
16
21
|
gem install skunk
|
17
22
|
CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
18
|
-
if [[ "$CURRENT_BRANCH"
|
23
|
+
if [[ "$CURRENT_BRANCH" != "main" ]]; then
|
19
24
|
echo "Executing within branch: $CURRENT_BRANCH"
|
20
|
-
skunk lib/
|
25
|
+
skunk lib/ -b master
|
21
26
|
else
|
22
27
|
echo "Executing within master branch"
|
23
|
-
skunk lib/
|
28
|
+
skunk lib/
|
24
29
|
fi
|
data/.gitignore
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2020-11-18 21:57:13 UTC using RuboCop version 1.3.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
+
# Offense count: 2
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'gemfiles/skunk.gemspec'
|
15
|
+
- 'skunk.gemspec'
|
16
|
+
|
9
17
|
# Offense count: 1
|
10
18
|
# Cop supports --auto-correct.
|
11
19
|
Layout/ClosingHeredocIndentation:
|
@@ -14,28 +22,42 @@ Layout/ClosingHeredocIndentation:
|
|
14
22
|
|
15
23
|
# Offense count: 1
|
16
24
|
# Cop supports --auto-correct.
|
17
|
-
|
18
|
-
# SupportedStyles: squiggly, active_support, powerpack, unindent
|
19
|
-
Layout/IndentHeredoc:
|
25
|
+
Layout/HeredocIndentation:
|
20
26
|
Exclude:
|
21
27
|
- 'lib/skunk/cli/commands/status_reporter.rb'
|
22
28
|
|
29
|
+
# Offense count: 1
|
30
|
+
# Configuration parameters: AllowedMethods.
|
31
|
+
# AllowedMethods: enums
|
32
|
+
Lint/ConstantDefinitionInBlock:
|
33
|
+
Exclude:
|
34
|
+
- 'test/lib/skunk/cli/commands/help_test.rb'
|
35
|
+
|
23
36
|
# Offense count: 2
|
24
|
-
|
37
|
+
Lint/MissingSuper:
|
38
|
+
Exclude:
|
39
|
+
- 'lib/skunk/cli/application.rb'
|
40
|
+
- 'lib/skunk/cli/commands/base.rb'
|
41
|
+
|
42
|
+
# Offense count: 1
|
43
|
+
# Configuration parameters: IgnoredMethods.
|
44
|
+
Metrics/AbcSize:
|
45
|
+
Max: 18
|
46
|
+
|
47
|
+
# Offense count: 5
|
48
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
|
25
49
|
# ExcludedMethods: refine
|
26
50
|
Metrics/BlockLength:
|
27
|
-
Max:
|
51
|
+
Max: 64
|
52
|
+
|
53
|
+
# Offense count: 2
|
54
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
|
55
|
+
Metrics/MethodLength:
|
56
|
+
Max: 13
|
28
57
|
|
29
58
|
# Offense count: 1
|
30
|
-
#
|
31
|
-
#
|
32
|
-
Naming/
|
59
|
+
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
|
60
|
+
# SupportedStyles: snake_case, normalcase, non_integer
|
61
|
+
Naming/VariableNumber:
|
33
62
|
Exclude:
|
34
|
-
- 'lib/skunk/cli/
|
35
|
-
|
36
|
-
# Offense count: 7
|
37
|
-
# Cop supports --auto-correct.
|
38
|
-
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
39
|
-
# URISchemes: http, https
|
40
|
-
Metrics/LineLength:
|
41
|
-
Max: 96
|
63
|
+
- 'lib/skunk/cli/commands/status_sharer.rb'
|
data/CHANGELOG.md
CHANGED
@@ -1,44 +1,51 @@
|
|
1
1
|
# Changelog
|
2
|
+
|
2
3
|
All notable changes to this project will be documented in this file.
|
3
4
|
|
4
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
7
|
|
7
|
-
## [Unreleased] [(commits)](https://github.com/fastruby/skunk/compare/v0.
|
8
|
+
## [Unreleased] [(commits)](https://github.com/fastruby/skunk/compare/v0.5.0...HEAD)
|
9
|
+
## [0.5.0] [(commits)](https://github.com/fastruby/skunk/compare/v0.4.2...v0.5.0)
|
10
|
+
|
11
|
+
* [FEATURE] Share your results using an environment variable (by [@rahulpuroht]() and [@etagwerker]())
|
12
|
+
* [FEATURE] Rename the tech debt metric: StinkScore => SkunkScore. It's a little friendlier.
|
13
|
+
* [FEATURE] Add `--out=file.txt` support to the command line (by [@manuca]())
|
14
|
+
* [BUGFIX] Skip both nested and top level spec and test folders
|
8
15
|
|
9
16
|
## [0.4.2] [(commits)](https://github.com/fastruby/skunk/compare/v0.4.1...v0.4.2)
|
10
|
-
* [BUGFIX] Fixes table width issues by rounding values (by [@etagwerker]
|
17
|
+
* [BUGFIX] Fixes table width issues by rounding values (by [@etagwerker]())
|
11
18
|
|
12
19
|
## [0.4.1] [(commits)](https://github.com/fastruby/skunk/compare/v0.4.0...v0.4.1)
|
13
|
-
* [BUGFIX] Fixes table width issues (by [@etagwerker]
|
20
|
+
* [BUGFIX] Fixes table width issues (by [@etagwerker]())
|
14
21
|
|
15
22
|
## [0.4.0] [(commits)](https://github.com/fastruby/skunk/compare/v0.3.2...v0.4.0)
|
16
|
-
* [FEATURE] Add `--version` support to the command line. (by [@bronzdoc]
|
17
|
-
* [FEATURE] Stop accepting `-p <path>` in the command line. It's redundant and it's not working anyway. (by [@etagwerker]
|
18
|
-
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]
|
19
|
-
* [BUGFIX] Fixes #12 (by [@sebastian-palma]
|
23
|
+
* [FEATURE] Add `--version` support to the command line. (by [@bronzdoc]())
|
24
|
+
* [FEATURE] Stop accepting `-p <path>` in the command line. It's redundant and it's not working anyway. (by [@etagwerker]())
|
25
|
+
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]())
|
26
|
+
* [BUGFIX] Fixes #12 (by [@sebastian-palma]())
|
20
27
|
|
21
28
|
## [0.3.2] - 2019-11-23 [(commits)](https://github.com/fastruby/skunk/compare/v0.3.1...v0.3.2)
|
22
29
|
### Changed
|
23
|
-
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]
|
30
|
+
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]())
|
24
31
|
|
25
32
|
## [0.3.1] - 2019-11-19 [(commits)](https://github.com/fastruby/skunk/compare/v0.3.0...v0.3.1)
|
26
33
|
### Changed
|
27
|
-
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]
|
34
|
+
* [BUGFIX] Change "StinkScore" formula to skip `churn_times_cost` (by [@etagwerker]())
|
28
35
|
|
29
36
|
## [0.3.0] - 2019-11-19 [(commits)](https://github.com/fastruby/skunk/compare/v0.2.0...v0.3.0)
|
30
37
|
### Changed
|
31
|
-
* [FEATURE] Added Travis CI badge to README (by [@themayurkumbhar]
|
32
|
-
* [FEATURE] Now you can compare "StinkScore" between branches (by [@etagwerker]
|
33
|
-
* [BUGFIX] Add contributor covenant doc (by [@etagwerker]
|
34
|
-
* [BUGFIX] Make sure tests work even you don't have a `coverage/.resultset.json` file (by [@etagwerker]
|
35
|
-
* [BUGFIX] Make tests easier to maintain (by [@etagwerker]
|
38
|
+
* [FEATURE] Added Travis CI badge to README (by [@themayurkumbhar]())
|
39
|
+
* [FEATURE] Now you can compare "StinkScore" between branches (by [@etagwerker]())
|
40
|
+
* [BUGFIX] Add contributor covenant doc (by [@etagwerker]())
|
41
|
+
* [BUGFIX] Make sure tests work even you don't have a `coverage/.resultset.json` file (by [@etagwerker]())
|
42
|
+
* [BUGFIX] Make tests easier to maintain (by [@etagwerker]())
|
36
43
|
|
37
44
|
## [0.2.0] - 2019-10-16 [(commits)](https://github.com/fastruby/skunk/compare/v0.1.0...v0.2.0)
|
38
45
|
### Changed
|
39
|
-
- [FEATURE] Now `skunk` will not report status for files that start with `test/` or `spec/` (by [@etagwerker]
|
46
|
+
- [FEATURE] Now `skunk` will not report status for files that start with `test/` or `spec/` (by [@etagwerker]())
|
40
47
|
|
41
48
|
## [0.1.0] - 2019-10-16
|
42
49
|
### Added
|
43
50
|
- [FEATURE] Now `skunk` uses `rubycritic-simplecov` to generate a console report with a list
|
44
|
-
of files and their "StinkScore" (by [@etagwerker]
|
51
|
+
of files and their "StinkScore" (by [@etagwerker]())
|
data/CODEOWNERS
ADDED
data/Gemfile-Ruby-2-4
ADDED
data/README.md
CHANGED
@@ -1,19 +1,21 @@
|
|
1
1
|
# Skunk
|
2
2
|
|
3
|
-
|
3
|
+
![skunk](https://github.com/fastruby/skunk/raw/master/logo.png)
|
4
4
|
|
5
|
-
|
5
|
+
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md) [![Build Status](https://travis-ci.org/fastruby/skunk.svg?branch=master)](https://travis-ci.org/fastruby/skunk) [![Maintainability](https://api.codeclimate.com/v1/badges/3e33d701ced16eee2420/maintainability)](https://codeclimate.com/github/fastruby/skunk/maintainability) [![Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/gems/skunk) [![codecov](https://codecov.io/gh/fastruby/skunk/branch/master/graph/badge.svg)](https://codecov.io/gh/fastruby/skunk)
|
6
6
|
|
7
|
-
|
7
|
+
A RubyCritic extension to calculate SkunkScore for a file or project.
|
8
8
|
|
9
|
-
|
9
|
+
## What is the SkunkScore?
|
10
|
+
|
11
|
+
The SkunkScore is a value that assesses the technical debt of a module. It takes
|
10
12
|
into account:
|
11
13
|
|
12
14
|
- Code Complexity
|
13
15
|
- Code Smells
|
14
16
|
- Code Coverage
|
15
17
|
|
16
|
-
The main goal of the
|
18
|
+
The main goal of the SkunkScore is to serve as a compass in your next
|
17
19
|
refactoring adventure. It will help you answer these questions:
|
18
20
|
|
19
21
|
- What can I do to pay off technical debt?
|
@@ -50,11 +52,12 @@ There are not that many options but here they are:
|
|
50
52
|
skunk -h
|
51
53
|
Usage: skunk [options] [paths]
|
52
54
|
-b, --branch BRANCH Set branch to compare
|
55
|
+
-o, --out FILE Output report to file
|
53
56
|
-v, --version Show gem's version
|
54
57
|
-h, --help Show this message
|
55
58
|
```
|
56
59
|
|
57
|
-
### Getting a sorted list of
|
60
|
+
### Getting a sorted list of smelly files
|
58
61
|
|
59
62
|
To get the best results, make sure that you have `coverage/.resultset.json` in
|
60
63
|
your application directory. That way `skunk` knows what's the status of your
|
@@ -66,7 +69,7 @@ Then simply run:
|
|
66
69
|
skunk
|
67
70
|
```
|
68
71
|
|
69
|
-
Then get a list of
|
72
|
+
Then get a list of smelly files:
|
70
73
|
|
71
74
|
```
|
72
75
|
$ skunk
|
@@ -86,7 +89,7 @@ running simple_cov
|
|
86
89
|
.............
|
87
90
|
New critique at file:////Users/etagwerker/Projects/fastruby/skunk/tmp/rubycritic/overview.html
|
88
91
|
+-----------------------------------------------------+----------------------------+----------------------------+----------------------------+----------------------------+----------------------------+
|
89
|
-
| file |
|
92
|
+
| file | skunk_score | churn_times_cost | churn | cost | coverage |
|
90
93
|
+-----------------------------------------------------+----------------------------+----------------------------+----------------------------+----------------------------+----------------------------+
|
91
94
|
| lib/skunk/cli/commands/default.rb | 166.44 | 1.6643999999999999 | 3 | 0.5548 | 0 |
|
92
95
|
| lib/skunk/cli/application.rb | 139.2 | 1.392 | 3 | 0.46399999999999997 | 0 |
|
@@ -103,14 +106,14 @@ New critique at file:////Users/etagwerker/Projects/fastruby/skunk/tmp/rubycritic
|
|
103
106
|
| lib/skunk/cli/commands/help.rb | 0.0 | 0.0 | 2 | 0.0 | 0 |
|
104
107
|
+-----------------------------------------------------+----------------------------+----------------------------+----------------------------+----------------------------+----------------------------+
|
105
108
|
|
106
|
-
|
109
|
+
SkunkScore Total: 612.31
|
107
110
|
Modules Analysed: 13
|
108
|
-
|
109
|
-
Worst
|
111
|
+
SkunkScore Average: 0.47100769230769230769230769231e2
|
112
|
+
Worst SkunkScore: 166.44 (lib/skunk/cli/commands/default.rb)
|
110
113
|
```
|
111
114
|
|
112
115
|
The command will run `rubycritic` and it will try to load code coverage data
|
113
|
-
from your
|
116
|
+
from your `coverage/.resultset.json` file.
|
114
117
|
|
115
118
|
Skunk's report will be in the console. Use it wisely. :)
|
116
119
|
|
@@ -122,7 +125,7 @@ Simply run:
|
|
122
125
|
skunk -b <target-branch-name>
|
123
126
|
```
|
124
127
|
|
125
|
-
Then get a
|
128
|
+
Then get a SkunkScore average comparison:
|
126
129
|
|
127
130
|
```
|
128
131
|
$ skunk -b master
|
@@ -156,28 +159,63 @@ running churn
|
|
156
159
|
.................
|
157
160
|
running simple_cov
|
158
161
|
.................
|
159
|
-
Base branch (master) average
|
160
|
-
Feature branch (feature/compare) average
|
162
|
+
Base branch (master) average skunk score: 290.53999999999996
|
163
|
+
Feature branch (feature/compare) average skunk score: 340.3005882352941
|
161
164
|
Score: 340.3
|
162
165
|
```
|
163
166
|
|
164
167
|
This should give you an idea if you're moving in the right direction or not.
|
165
168
|
|
169
|
+
### Sharing results
|
170
|
+
|
171
|
+
If you want to quickly share the results of your report, you can use an
|
172
|
+
environment variable:
|
173
|
+
|
174
|
+
```
|
175
|
+
SHARE=true skunk app/
|
176
|
+
...
|
177
|
+
SkunkScore Total: 126.99
|
178
|
+
Modules Analysed: 17
|
179
|
+
SkunkScore Average: 7.47
|
180
|
+
Worst SkunkScore: 41.92 (lib/skunk/cli/commands/status_sharer.rb)
|
181
|
+
|
182
|
+
Generated with Skunk v0.5.0
|
183
|
+
Shared at: https://skunk.fastruby.io/k
|
184
|
+
```
|
185
|
+
|
186
|
+
Results will be posted by default to https://skunk.fastruby.io which is a free
|
187
|
+
and open source Ruby on Rails application sponsored by
|
188
|
+
[OmbuLabs](https://www.ombulabs.com) ([source code](https://github.com/fastruby/skunk.fyi)).
|
189
|
+
|
190
|
+
If you prefer to post results to your own server, you can do so:
|
191
|
+
|
192
|
+
```
|
193
|
+
SHARE_URL=https://path.to.your.skunk-fyi-server.example.com skunk app/
|
194
|
+
...
|
195
|
+
SkunkScore Total: 126.99
|
196
|
+
Modules Analysed: 17
|
197
|
+
SkunkScore Average: 7.47
|
198
|
+
Worst SkunkScore: 41.92 (lib/skunk/cli/commands/status_sharer.rb)
|
199
|
+
|
200
|
+
Generated with Skunk v0.5.0
|
201
|
+
Shared at: https://path.to.your.skunk-fyi-server.example.com/k
|
202
|
+
```
|
203
|
+
|
166
204
|
## Known Issues
|
167
205
|
|
168
|
-
The
|
169
|
-
representation of the average
|
206
|
+
The SkunkScore should be calculated per method. This would provide a more accurate
|
207
|
+
representation of the average SkunkScore in a module.
|
170
208
|
|
171
|
-
I think that the
|
209
|
+
I think that the SkunkScore of a module should be the average of the SkunkScores of
|
172
210
|
all of its methods.
|
173
211
|
|
174
|
-
Right now the
|
212
|
+
Right now the SkunkScore is calculated using the totals for a module:
|
175
213
|
|
176
214
|
- Total Code Coverage Percentage per Module
|
177
215
|
- Total Churn per Module
|
178
216
|
- Total Cost per Module
|
179
217
|
|
180
|
-
For more details, feel free to review and improve this method: [RubyCritic::AnalysedModule#
|
218
|
+
For more details, feel free to review and improve this method: [RubyCritic::AnalysedModule#skunk_score]
|
181
219
|
|
182
220
|
## Development
|
183
221
|
|
@@ -188,3 +226,9 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
188
226
|
## Contributing
|
189
227
|
|
190
228
|
Bug reports and pull requests are welcome on GitHub at https://github.com/fastruby/skunk/issues.
|
229
|
+
|
230
|
+
## Sponsorship
|
231
|
+
|
232
|
+
![FastRuby.io | Rails Upgrade Services](https://github.com/fastruby/skunk/raw/master/fastruby-logo.png)
|
233
|
+
|
234
|
+
`skunk` is maintained and funded by [FastRuby.io](https://fastruby.io). The names and logos for FastRuby.io are trademarks of The Lean Software Boutique LLC.
|