undercover 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90f2bd1d3a2ddb275c710e0a9c106235a3c4134a722763b5904a71962e455b90
4
- data.tar.gz: 1276a7080b186025c9ee637a4573e3d0d934ae4bf3a1ad997149d05141b84dad
3
+ metadata.gz: 2c55fedc1b13694df2a9042c5e78543fcfd5d5417d5c99c61831ff8ff53a0f28
4
+ data.tar.gz: 3a7466522f20c47bd9b131b1d76e7ecbe2ec3c10a6b0d9c2d72c66dd7616d214
5
5
  SHA512:
6
- metadata.gz: 1ecd86502ba1b150484b7848f4da94c3c1f8e642fa6c6e59d1635de2e143ec9d86d1080e1373a3ef8434fbc19c1b2f8dc07e51fcf76f40ab1b02847408e240a8
7
- data.tar.gz: 256dd99d6f1026bbb23adbe3c0f99e726041098911de08934372aa4c100afb9527f8c8970c0b56fc2e615b397ec40b9445a3111e051f5584ed205ebba9f28189
6
+ metadata.gz: d2057a6288f575e76c21dc6a747622b231817353bd695aab512188cd10785c1e7423364d053201f8396b4694f0b2734cf744a2d696b7c2c7db33c3f2dff80b9b
7
+ data.tar.gz: 000140b3cefe4e22e8b25660b3c30060cf8cc881853d2044b9a9b50a9d69ef22cbf859d47de6b1d4be707ec0a385969af38678d92350b1ee30eeb3a50f13a3cd
@@ -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.2.3...HEAD
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
- ### Options
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
- Default options assume that the program is run from the top level of the project directory.
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
 
@@ -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
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Undercover
4
- VERSION = '0.2.3'
4
+ VERSION = '0.3.0'
5
5
  end
@@ -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', '~> 1.16'
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.2.3
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: 2018-12-26 00:00:00.000000000 Z
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: '1.16'
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: '1.16'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement