undercover 0.2.3 → 0.3.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 +6 -1
- data/README.md +18 -2
- data/lib/undercover/cli.rb +6 -3
- data/lib/undercover/options.rb +21 -0
- data/lib/undercover/version.rb +1 -1
- data/undercover.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c55fedc1b13694df2a9042c5e78543fcfd5d5417d5c99c61831ff8ff53a0f28
|
4
|
+
data.tar.gz: 3a7466522f20c47bd9b131b1d76e7ecbe2ec3c10a6b0d9c2d72c66dd7616d214
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2057a6288f575e76c21dc6a747622b231817353bd695aab512188cd10785c1e7423364d053201f8396b4694f0b2734cf744a2d696b7c2c7db33c3f2dff80b9b
|
7
|
+
data.tar.gz: 000140b3cefe4e22e8b25660b3c30060cf8cc881853d2044b9a9b50a9d69ef22cbf859d47de6b1d4be707ec0a385969af38678d92350b1ee30eeb3a50f13a3cd
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [0.3.0] - 2019-01-05
|
10
|
+
### Added
|
11
|
+
- Support for `.undercover` config file by @cgeorgii
|
12
|
+
|
9
13
|
## [0.2.3] - 2018-12-26
|
10
14
|
### Fixed
|
11
15
|
- `--ruby-syntax` typo fix by @cgeorgii
|
@@ -65,7 +69,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
65
69
|
### Added
|
66
70
|
- First release of `undercover` 🎉
|
67
71
|
|
68
|
-
[Unreleased]: https://github.com/grodowski/undercover/compare/v0.
|
72
|
+
[Unreleased]: https://github.com/grodowski/undercover/compare/v0.3.0...HEAD
|
73
|
+
[0.3.0]: https://github.com/grodowski/undercover/compare/v0.2.3...v0.3.0
|
69
74
|
[0.2.3]: https://github.com/grodowski/undercover/compare/v0.2.2...v0.2.3
|
70
75
|
[0.2.2]: https://github.com/grodowski/undercover/compare/v0.2.1...v0.2.2
|
71
76
|
[0.2.1]: https://github.com/grodowski/undercover/compare/v0.2.0...v0.2.1
|
data/README.md
CHANGED
@@ -81,7 +81,11 @@ Check out `docs/` for CI configuration examples:
|
|
81
81
|
- [Semaphore](docs/semaphore.yml)
|
82
82
|
- [Codeship](docs/codeship.md)
|
83
83
|
|
84
|
-
|
84
|
+
## Configuration
|
85
|
+
|
86
|
+
### CLI Options
|
87
|
+
|
88
|
+
Options can be passed when running the command from the command line:
|
85
89
|
|
86
90
|
```sh
|
87
91
|
undercover -h
|
@@ -94,7 +98,19 @@ Usage: undercover [options]
|
|
94
98
|
--version Show version
|
95
99
|
```
|
96
100
|
|
97
|
-
|
101
|
+
### Configuration File
|
102
|
+
|
103
|
+
A configuration file named `.undercover` can be created at the top level of a project's directory containing the same set of options for the CLI.
|
104
|
+
Example file:
|
105
|
+
|
106
|
+
```sh
|
107
|
+
-l path/to/different.lcov
|
108
|
+
-c origin/master
|
109
|
+
```
|
110
|
+
|
111
|
+
The options set in the file can be overriden by passing arguments when invoking the executable.
|
112
|
+
|
113
|
+
Options assume that the program is run from the top level of the project directory.
|
98
114
|
|
99
115
|
## Why?
|
100
116
|
|
data/lib/undercover/cli.rb
CHANGED
@@ -14,11 +14,15 @@ module Undercover
|
|
14
14
|
'Re-run tests to update').yellow,
|
15
15
|
no_changes: Rainbow('✅ No reportable changes').green
|
16
16
|
}.freeze
|
17
|
-
|
18
|
-
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
19
17
|
def self.run(args)
|
20
18
|
opts = Undercover::Options.new.parse(args)
|
21
19
|
syntax_version(opts.syntax_version)
|
20
|
+
|
21
|
+
run_report(opts)
|
22
|
+
end
|
23
|
+
# rubocop:enable
|
24
|
+
|
25
|
+
def self.run_report(opts)
|
22
26
|
report = Undercover::Report.new(changeset(opts), opts).build
|
23
27
|
|
24
28
|
error = report.validate(opts.lcov)
|
@@ -31,7 +35,6 @@ module Undercover
|
|
31
35
|
puts Undercover::Formatter.new(warnings)
|
32
36
|
warnings.any? ? 1 : 0
|
33
37
|
end
|
34
|
-
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
35
38
|
|
36
39
|
def self.syntax_version(version)
|
37
40
|
return unless version
|
data/lib/undercover/options.rb
CHANGED
@@ -31,6 +31,8 @@ module Undercover
|
|
31
31
|
|
32
32
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
33
33
|
def parse(args)
|
34
|
+
args = build_opts(args)
|
35
|
+
|
34
36
|
OptionParser.new do |opts|
|
35
37
|
opts.banner = 'Usage: undercover [options]'
|
36
38
|
|
@@ -53,6 +55,7 @@ module Undercover
|
|
53
55
|
# --quiet (skip progress bar)
|
54
56
|
# --exit-status (do not print report, just exit)
|
55
57
|
end.parse(args)
|
58
|
+
|
56
59
|
guess_lcov_path unless lcov
|
57
60
|
self
|
58
61
|
end
|
@@ -60,6 +63,24 @@ module Undercover
|
|
60
63
|
|
61
64
|
private
|
62
65
|
|
66
|
+
def build_opts(args)
|
67
|
+
project_options.concat(args)
|
68
|
+
end
|
69
|
+
|
70
|
+
def project_options
|
71
|
+
args_from_options_file(project_options_file)
|
72
|
+
end
|
73
|
+
|
74
|
+
def args_from_options_file(path)
|
75
|
+
return [] unless File.exist?(path)
|
76
|
+
|
77
|
+
File.read(path).split('\n').flat_map { |line| line.split(' ') }
|
78
|
+
end
|
79
|
+
|
80
|
+
def project_options_file
|
81
|
+
'./.undercover'
|
82
|
+
end
|
83
|
+
|
63
84
|
def lcov_path_option(parser)
|
64
85
|
parser.on('-l', '--lcov path', 'LCOV report file path') do |path|
|
65
86
|
self.lcov = path
|
data/lib/undercover/version.rb
CHANGED
data/undercover.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency 'rainbow', '~> 2.1'
|
28
28
|
spec.add_dependency 'rugged', '~> 0.27.0'
|
29
29
|
|
30
|
-
spec.add_development_dependency 'bundler'
|
30
|
+
spec.add_development_dependency 'bundler'
|
31
31
|
spec.add_development_dependency 'pry'
|
32
32
|
spec.add_development_dependency 'rake', '~> 10.0'
|
33
33
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: undercover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Grodowski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: imagen
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|