single_cov 1.7.1 → 1.8.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: 335d34d5996fcce343f9169f6ac25438b067c5a3c15bdd1d98dcee3735fa466d
4
- data.tar.gz: 29f107401979e13f522f68ea7c5fe5dd669da526e63b058be5f4801ad9ba99d6
3
+ metadata.gz: 191288dd953084f124ab1ad02620d9d0a4d0ed77aa24eaa4da49c96dbafae959
4
+ data.tar.gz: a286ebd56118b731cdfc3f67f7c35839b97a8e10e1514e801d04dd063a743a69
5
5
  SHA512:
6
- metadata.gz: 72a285bece4433388ec47c2559c4c0635660620f4d9c0887d431ecd4915bc41131c495bff35040801bcfe1835fb393a05e84661b4379d037d8874cb4e5e6e440
7
- data.tar.gz: 408ef4c3a530aa768ff91db4ad31f1a028c69994ea766fc56b72d63a699f26d60be21e8f21b8f96d2dace82604615b1ddbf2050c9f367bdebaecc54a8069073e
6
+ metadata.gz: 216a68bd848bbf423383d2259c8841e192a20db71461bbb91a16b4d384cc7fb9fa4ffbe312b86ae25bc623f05b38c20f948b8eb4abb3e710ef42ec402b90c661
7
+ data.tar.gz: d8182e0a8e9b24c28b02c59c78200bec605e013818f6b47983303dbe8b62ed43ebfb6fe6a23ed50fa3bf9c7d0d501f2257197b2a8f258182db6849bef3e2b549
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module SingleCov
3
- VERSION = "1.7.1"
3
+ VERSION = "1.8.0"
4
4
  end
data/lib/single_cov.rb CHANGED
@@ -76,6 +76,32 @@ module SingleCov
76
76
  end
77
77
  end
78
78
 
79
+ def assert_full_coverage(tests: default_tests, currently_complete: [], location: nil)
80
+ location ||= caller(0..1)[1].split(':in').first
81
+ complete = tests.select { |file| File.read(file) =~ /SingleCov.covered!(\s*|\s*\#.*)$/ }
82
+ missing_complete = currently_complete - complete
83
+ newly_complete = complete - currently_complete
84
+ errors = []
85
+
86
+ if missing_complete.any?
87
+ errors << <<~MSG
88
+ The following file(s) were previously marked as having 100% SingleCov test coverage (had no `coverage:` option) but are no longer marked as such.
89
+ Please increase test coverage in these files to maintain 100% coverage and remove `coverage:` usage.
90
+ #{missing_complete.join("\n")}
91
+ MSG
92
+ end
93
+
94
+ if newly_complete.any?
95
+ errors << <<~MSG
96
+ The following files are newly at 100% SingleCov test coverage.
97
+ Please add the following to #{location} to ensure 100% coverage is maintained moving forward.
98
+ #{newly_complete.join("\n")}
99
+ MSG
100
+ end
101
+
102
+ raise errors.join("\n") if errors.any?
103
+ end
104
+
79
105
  def setup(framework, root: nil, branches: true, err: $stderr)
80
106
  @error_logger = err
81
107
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: single_cov
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-24 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: michael@grosser.it