coverage_peek 0.1.0 → 0.1.1
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/ext/coverage_peek/coverage_peek.c +52 -3
- data/lib/coverage_peek/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 052fb0423e40782eab33c74fb53f733d64db0b67
|
4
|
+
data.tar.gz: b7718915fb76d46ffd8e5181fb96fb7be4190d93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9002ffcbc52824fdcf8e8fe47b03a5ccff30556bbd2f794963703f60e04921d87bc641ecf9762e8ddf396f18273f534d4c6fac9f902c164ffcfe11b67b36b6ff
|
7
|
+
data.tar.gz: 0ec2bbc5a30676ac996cc6580cbeb30e503a920c4844624a02d69d14913dd1a47ed76cd32bf461abade0a3c2f7bf3969e65995e2615dc525ba3c6f3ecb3aa80b
|
@@ -7,6 +7,7 @@ ID id_Coverage;
|
|
7
7
|
extern VALUE
|
8
8
|
rb_get_coverages(void);
|
9
9
|
|
10
|
+
/* BEGIN copy-paste from ruby-2.3 */
|
10
11
|
static int
|
11
12
|
coverage_peek_result_i(st_data_t key, st_data_t val, st_data_t h)
|
12
13
|
{
|
@@ -37,14 +38,62 @@ rb_coverage_peek_result(VALUE klass)
|
|
37
38
|
rb_hash_freeze(ncoverages);
|
38
39
|
return ncoverages;
|
39
40
|
}
|
41
|
+
/* END copy-paste from ruby-2.3 */
|
42
|
+
|
43
|
+
|
44
|
+
static int
|
45
|
+
coverage_peek_result_filtered_i(st_data_t key, st_data_t val, st_data_t h)
|
46
|
+
{
|
47
|
+
VALUE path = (VALUE)key;
|
48
|
+
VALUE coverage = (VALUE)val;
|
49
|
+
VALUE coverages = (VALUE)h;
|
50
|
+
int found = 0;
|
51
|
+
long i;
|
52
|
+
for (i = 0; i < RARRAY_LEN(coverage); i++) {
|
53
|
+
VALUE elt = rb_ary_entry(coverage, i);
|
54
|
+
if (NIL_P(elt))
|
55
|
+
continue;
|
56
|
+
if (FIXNUM_P(elt) && FIX2LONG(elt) > 0) {
|
57
|
+
found = 1;
|
58
|
+
break;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
if (!found)
|
62
|
+
return ST_CONTINUE;
|
63
|
+
coverage = rb_ary_dup(coverage);
|
64
|
+
rb_ary_freeze(coverage);
|
65
|
+
rb_hash_aset(coverages, path, coverage);
|
66
|
+
return ST_CONTINUE;
|
67
|
+
}
|
68
|
+
|
69
|
+
/*
|
70
|
+
* call-seq:
|
71
|
+
* Coverage.peek_result_filtered => hash
|
72
|
+
*
|
73
|
+
* Returns a hash that contains filename as key and coverage array as
|
74
|
+
* value. Elides any files that have no executed lines.
|
75
|
+
*/
|
76
|
+
static VALUE
|
77
|
+
rb_coverage_peek_result_filtered(VALUE klass)
|
78
|
+
{
|
79
|
+
VALUE coverages = rb_get_coverages();
|
80
|
+
VALUE ncoverages = rb_hash_new();
|
81
|
+
if (!RTEST(coverages)) {
|
82
|
+
rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");
|
83
|
+
}
|
84
|
+
st_foreach(RHASH_TBL(coverages), coverage_peek_result_filtered_i, ncoverages);
|
85
|
+
rb_hash_freeze(ncoverages);
|
86
|
+
return ncoverages;
|
87
|
+
}
|
88
|
+
|
40
89
|
|
41
90
|
void
|
42
91
|
Init_coverage_peek(void)
|
43
92
|
{
|
44
93
|
rb_require("coverage.so");
|
45
|
-
if (RUBY_API_VERSION_CODE >= 203000)
|
46
|
-
return;
|
47
94
|
id_Coverage = rb_intern("Coverage");
|
48
95
|
rb_mCoverage = rb_const_get(rb_cObject, id_Coverage);
|
49
|
-
|
96
|
+
if (RUBY_API_VERSION_CODE < 203000)
|
97
|
+
rb_define_module_function(rb_mCoverage, "peek_result", rb_coverage_peek_result, 0);
|
98
|
+
rb_define_module_function(rb_mCoverage, "peek_result_filtered", rb_coverage_peek_result_filtered, 0);
|
50
99
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coverage_peek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nelson Elhage
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|