single_cov 1.7.1 → 1.8.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 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