undercover 0.4.5 → 0.4.6

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: be85578654ccaecd6bd01497e0dc13014734f7cdec764b3b0d44180e671d620f
4
- data.tar.gz: 463b56ed9848158127f1cfed4e6afa2ff086d576bffe4ab35615d075921ea6f3
3
+ metadata.gz: bff312e0fdc1d61bc1ac46a49812fe490bc57d095f660ba38df00686b1d08a28
4
+ data.tar.gz: b8df1a289dd957868632ecb1aea06033b6945e75357163f1007136ccae94d9b3
5
5
  SHA512:
6
- metadata.gz: 110f9f33c17eed386663609af89e3dab7a27e611a984d09c46a385986a103b8d219bd87c6044bc418674616a62a14f1ba3aa4ae057bd065131d2d288f8c069ed
7
- data.tar.gz: 4d26813749d77e5bb880cd61b062326e9e7e114f80ec01b5d07c947a8a2794d3e2402efea30593276f45581fec5e8e986691a963173e24f3cbfbfaf667d96d52
6
+ metadata.gz: b4fee8956df8fd10483e7c6af403859c1e93775fe8d322b3709f22d38b14cbcd4139aea072692eb5bb754f1d581ebf7123352b63d5641c0f7810ee9ba3a577a2
7
+ data.tar.gz: 1dfced71df7fb571add736bb31877ae5c3116796c3c3a888db9e3e1d6f8c7ad92809f47dce700ead01064299706a6edf0347d8333ba8218ec8696512de5ca854
@@ -5,7 +5,7 @@ jobs:
5
5
  runs-on: ubuntu-latest
6
6
  strategy:
7
7
  matrix:
8
- ruby: ['3.1', '3.0', '2.7', '2.6', '2.5']
8
+ ruby: ['3.2', '3.0', '2.7']
9
9
  steps:
10
10
  - uses: actions/checkout@v1
11
11
  - name: Set up Ruby ${{ matrix.ruby }}
@@ -17,5 +17,24 @@ jobs:
17
17
  gem install bundler undercover --no-doc
18
18
  bundle install --jobs 4 --retry 3
19
19
  bundle exec rake
20
+ - name: undercover (local)
21
+ run: |
20
22
  git fetch origin master:master
21
23
  undercover --compare master
24
+ - uses: actions/upload-artifact@v2
25
+ with:
26
+ name: undercover.lcov
27
+ path: coverage/lcov/undercover.lcov
28
+ coverage:
29
+ runs-on: ubuntu-latest
30
+ needs: build
31
+ steps:
32
+ - uses: actions/download-artifact@v2
33
+ with:
34
+ name: undercover.lcov
35
+ - name: Upload coverage
36
+ run: |
37
+ ruby -e "$(curl -s https://undercover-ci.com/uploader.rb)" -- \
38
+ --repo grodowski/undercover \
39
+ --commit $GITHUB_SHA \
40
+ --lcov /home/runner/work/undercover/undercover/undercover.lcov
data/.rubocop.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
- TargetRubyVersion: 2.5.0
3
+ TargetRubyVersion: 2.7.0
4
4
  Exclude:
5
5
  - spec/fixtures/**/*
6
6
 
data/CHANGELOG.md CHANGED
@@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Changed
10
+ - Drop support for ruby < 2.7
11
+
9
12
  # [0.4.5] - 2022-07-28
10
13
  ### Changed
11
14
  - Update `rugged` dependency to `< 1.6`
data/README.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # undercover 👮‍♂️
2
2
 
3
- **Like RuboCop but for code coverage**. Inspects files in a git diff and warns on changed methods, classes and blocks which need to be tested. Use it locally or as part of an automated build to shorten your code coverage feedback loop!
3
+ [![Build Status](https://github.com/grodowski/undercover/actions/workflows/ruby.yml/badge.svg)](https://github.com/grodowski/undercover/actions)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/b403feed68a18c072ec5/maintainability)](https://codeclimate.com/github/grodowski/undercover/maintainability)
5
+ ![Downloads](https://img.shields.io/gem/dt/undercover)
6
+
7
+ `undercover` examines git diffs and warns about Ruby methods, classes and blocks that **were changed without sufficient test coverage**.
8
+
9
+ Works with CI/CD and automated pull request review, as well as locally using the CLI to help you reduce the number of defects caused by untested code changes.
4
10
 
5
- - Visit **[https://undercover-ci.com](https://undercover-ci.com)** to set up actionable GitHub code review checks, or use one of the [integrations](#code-review-integrations)
11
+ - Visit **[https://undercover-ci.com](https://undercover-ci.com)** to set up code review checks with the GitHub App, or use one of the [CI integrations](#code-review-integrations)
6
12
  - Learn how to find untested code changes locally with the [CLI](#usage)
7
13
 
8
14
  A sample output of `undercover` ran before a commit may look like this:
@@ -13,9 +19,6 @@ And like this, given that specs were added:
13
19
 
14
20
  ![screenshot success](docs/screenshot_success.png)
15
21
 
16
- [![Build Status](https://action-badges.now.sh/grodowski/undercover)](https://github.com/grodowski/undercover/actions)
17
- [![Maintainability](https://api.codeclimate.com/v1/badges/b403feed68a18c072ec5/maintainability)](https://codeclimate.com/github/grodowski/undercover/maintainability)
18
-
19
22
  ## Installation
20
23
 
21
24
  Add this line to your application's Gemfile:
@@ -29,6 +29,24 @@ module Undercover
29
29
  coverage || []
30
30
  end
31
31
 
32
+ def total_coverage
33
+ all_lines = source_files.values.flatten(1)
34
+ return 0 if all_lines.empty?
35
+
36
+ all_lines = all_lines.select { _1.size == 2 }
37
+ total_f = all_lines.select { |_line_no, hits| hits.positive? }.size.to_f / all_lines.size
38
+ total_f.round(3)
39
+ end
40
+
41
+ def total_branch_coverage
42
+ all_lines = source_files.values.flatten(1)
43
+ return 0 if all_lines.empty?
44
+
45
+ all_branches = all_lines.select { _1.size == 4 }
46
+ total_f = all_branches.select { |_l_no, _block_no, _br_no, hits| hits.positive? }.size.to_f / all_branches.size
47
+ total_f.round(3)
48
+ end
49
+
32
50
  private
33
51
 
34
52
  # rubocop:disable Metrics/MethodLength, Style/SpecialGlobalVars, Metrics/AbcSize
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Undercover
4
- VERSION = '0.4.5'
4
+ VERSION = '0.4.6'
5
5
  end
data/undercover.gemspec CHANGED
@@ -26,11 +26,11 @@ Gem::Specification.new do |spec|
26
26
  spec.executables = spec.files.grep(/^bin\//) { |f| File.basename(f) }
27
27
  spec.require_paths = ['lib']
28
28
 
29
- spec.required_ruby_version = '>= 2.5.0'
29
+ spec.required_ruby_version = '>= 2.7.0'
30
30
 
31
31
  spec.add_dependency 'imagen', '>= 0.1.8'
32
32
  spec.add_dependency 'rainbow', '>= 2.1', '< 4.0'
33
- spec.add_dependency 'rugged', '>= 0.27', '< 1.6'
33
+ spec.add_dependency 'rugged', '>= 0.27', '< 1.7'
34
34
 
35
35
  spec.add_development_dependency 'bundler'
36
36
  spec.add_development_dependency 'pry'
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.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Grodowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-29 00:00:00.000000000 Z
11
+ date: 2023-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: imagen
@@ -53,7 +53,7 @@ dependencies:
53
53
  version: '0.27'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '1.6'
56
+ version: '1.7'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '0.27'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '1.6'
66
+ version: '1.7'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: bundler
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +240,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - ">="
242
242
  - !ruby/object:Gem::Version
243
- version: 2.5.0
243
+ version: 2.7.0
244
244
  required_rubygems_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
246
  - - ">="
247
247
  - !ruby/object:Gem::Version
248
248
  version: '0'
249
249
  requirements: []
250
- rubygems_version: 3.2.32
250
+ rubygems_version: 3.4.1
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: Actionable code coverage - detects untested code blocks in recent changes