skunk 0.3.1 → 0.3.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.
- checksums.yaml +4 -4
- data/.reek.yml +18 -13
- data/Gemfile.lock +1 -1
- data/lib/skunk/cli/application.rb +7 -2
- data/lib/skunk/cli/commands/help.rb +1 -0
- data/lib/skunk/cli/commands/status_reporter.rb +2 -2
- data/lib/skunk/cli/options.rb +26 -2
- data/lib/skunk/cli/options/argv.rb +41 -0
- data/lib/skunk/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d3c745cc66587d122f3765510fae8271ff4f9fe050a01b98de8691e247f2948
|
4
|
+
data.tar.gz: 8bc479b7593c3fdcfc2555649e2a3c08d77ef624eda2148d9ba5c6b56e62d1e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2537c79bc13dcdc590d52076f46934ed522489cd2c4afe82aea8aca4064e274ece9391c9813188dffd79a23a080e46e36809afdd9c9731de528cfb84adbe3ac
|
7
|
+
data.tar.gz: a8b72fddcd6118858c4cf161c1aa99f3de087e22794cc3c6f68a8b1e1e6d94b2d9f1015a995aed65fd69305e254173b5f4ce615a8d5fe042893fe652274ca394
|
data/.reek.yml
CHANGED
@@ -1,28 +1,33 @@
|
|
1
1
|
# Auto generated by Reeks --todo flag
|
2
2
|
---
|
3
3
|
detectors:
|
4
|
-
|
4
|
+
Attribute:
|
5
5
|
exclude:
|
6
|
-
-
|
7
|
-
|
8
|
-
|
6
|
+
- Skunk::Command::StatusReporter#analysed_modules
|
7
|
+
FeatureEnvy:
|
8
|
+
exclude:
|
9
|
+
- Skunk::Command::StatusReporter#table
|
9
10
|
InstanceVariableAssumption:
|
10
11
|
exclude:
|
11
|
-
- Skunk::Cli::Application
|
12
12
|
- Skunk::Cli::Command::Default
|
13
|
+
- Skunk::Cli::Options::Argv
|
13
14
|
- RubyCritic::AnalysedModulesCollection
|
14
|
-
TooManyStatements:
|
15
|
-
exclude:
|
16
|
-
- initialize
|
17
|
-
- Skunk::Cli::Application#execute
|
18
15
|
IrresponsibleModule:
|
19
16
|
exclude:
|
20
17
|
- Skunk::Cli::Command::Help
|
18
|
+
- Skunk::Cli::Options::Argv
|
21
19
|
- Skunk::Cli::Options
|
22
20
|
- RubyCritic::AnalysedModulesCollection
|
23
|
-
|
21
|
+
NestedIterators:
|
24
22
|
exclude:
|
25
|
-
- Skunk::
|
26
|
-
|
23
|
+
- Skunk::Cli::Options::Argv#parse
|
24
|
+
TooManyStatements:
|
27
25
|
exclude:
|
28
|
-
-
|
26
|
+
- initialize
|
27
|
+
- Skunk::Cli::Application#execute
|
28
|
+
- Skunk::Cli::Options::Argv#parse
|
29
|
+
UtilityFunction:
|
30
|
+
exclude:
|
31
|
+
- capture_output_streams
|
32
|
+
- Skunk::Command::Compare#analyse_modified_files
|
33
|
+
- Skunk::Command::Compare#build_details_path
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "rubycritic/cli/options"
|
4
|
+
require "rubycritic/cli/application"
|
5
|
+
|
3
6
|
require "skunk"
|
4
7
|
require "skunk/rubycritic/analysed_module"
|
5
8
|
require "skunk/cli/options"
|
6
9
|
require "skunk/cli/command_factory"
|
7
10
|
|
8
|
-
require "rubycritic/cli/application"
|
9
|
-
|
10
11
|
module Skunk
|
11
12
|
module Cli
|
12
13
|
# Knows how to execute command line commands
|
13
14
|
class Application < RubyCritic::Cli::Application
|
15
|
+
def initialize(argv)
|
16
|
+
@options = Skunk::Cli::Options.new(argv)
|
17
|
+
end
|
18
|
+
|
14
19
|
def execute
|
15
20
|
parsed_options = @options.parse.to_h
|
16
21
|
reporter = Skunk::Cli::CommandFactory.create(parsed_options).execute
|
@@ -13,7 +13,7 @@ module Skunk
|
|
13
13
|
HEADINGS = %w[file stink_score churn_times_cost churn cost coverage].freeze
|
14
14
|
|
15
15
|
TEMPLATE = ERB.new(<<-TEMPL
|
16
|
-
<%=
|
16
|
+
<%= _ttable %>\n
|
17
17
|
StinkScore Total: <%= total_stink_score %>
|
18
18
|
Modules Analysed: <%= analysed_modules_count %>
|
19
19
|
StinkScore Average: <%= stink_score_average %>
|
@@ -26,7 +26,7 @@ TEMPL
|
|
26
26
|
def update_status_message
|
27
27
|
opts = table_options.merge(headings: HEADINGS, rows: table)
|
28
28
|
|
29
|
-
|
29
|
+
_ttable = Terminal::Table.new(opts)
|
30
30
|
|
31
31
|
@status_message = TEMPLATE.result(binding)
|
32
32
|
end
|
data/lib/skunk/cli/options.rb
CHANGED
@@ -1,10 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
3
|
+
require "skunk/cli/options/argv"
|
4
|
+
require "rubycritic/cli/options/file"
|
4
5
|
|
5
6
|
module Skunk
|
6
7
|
module Cli
|
7
|
-
|
8
|
+
# Knows how to parse options passed to the CLI application
|
9
|
+
class Options
|
10
|
+
attr_reader :argv_options, :file_options
|
11
|
+
|
12
|
+
def initialize(argv)
|
13
|
+
@argv_options = Argv.new(argv)
|
14
|
+
@file_options = RubyCritic::Cli::Options::File.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse
|
18
|
+
argv_options.parse
|
19
|
+
file_options.parse
|
20
|
+
self
|
21
|
+
end
|
22
|
+
|
23
|
+
# :reek:NilCheck
|
24
|
+
def to_h
|
25
|
+
file_hash = file_options.to_h
|
26
|
+
argv_hash = argv_options.to_h
|
27
|
+
|
28
|
+
file_hash.merge(argv_hash) do |_, file_option, argv_option|
|
29
|
+
Array(argv_option).empty? ? file_option : argv_option
|
30
|
+
end
|
31
|
+
end
|
8
32
|
end
|
9
33
|
end
|
10
34
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rubycritic/cli/options/argv"
|
4
|
+
|
5
|
+
module Skunk
|
6
|
+
module Cli
|
7
|
+
# :nodoc:
|
8
|
+
class Options
|
9
|
+
# Extends RubyCritic::Cli::Options::Argv to parse a subset of the
|
10
|
+
# parameters accepted by RubyCritic
|
11
|
+
class Argv < RubyCritic::Cli::Options::Argv
|
12
|
+
def parse # rubocop:disable Metrics/MethodLength
|
13
|
+
parser.new do |opts|
|
14
|
+
opts.banner = "Usage: skunk [options] [paths]\n"
|
15
|
+
|
16
|
+
opts.on(
|
17
|
+
"-p", "--path [PATH]",
|
18
|
+
"Set path where report will be saved (tmp/skunk by default)"
|
19
|
+
) do |path|
|
20
|
+
@root = path
|
21
|
+
end
|
22
|
+
|
23
|
+
opts.on("-b", "--branch BRANCH", "Set branch to compare") do |branch|
|
24
|
+
self.base_branch = String(branch)
|
25
|
+
set_current_branch
|
26
|
+
self.mode = :compare_branches
|
27
|
+
end
|
28
|
+
|
29
|
+
opts.on_tail("-v", "--version", "Show gem's version") do
|
30
|
+
self.mode = :version
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
34
|
+
self.mode = :help
|
35
|
+
end
|
36
|
+
end.parse!(@argv)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/skunk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skunk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ernesto Tagwerker
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubycritic
|
@@ -196,6 +196,7 @@ files:
|
|
196
196
|
- lib/skunk/cli/commands/help.rb
|
197
197
|
- lib/skunk/cli/commands/status_reporter.rb
|
198
198
|
- lib/skunk/cli/options.rb
|
199
|
+
- lib/skunk/cli/options/argv.rb
|
199
200
|
- lib/skunk/rubycritic/analysed_module.rb
|
200
201
|
- lib/skunk/rubycritic/analysed_modules_collection.rb
|
201
202
|
- lib/skunk/version.rb
|