coverage_peek 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|