module Coverage
Coverage provides coverage measurement feature for Ruby. This feature is experimental, so these APIs may be changed in future.
Usage
-  
require “coverage.so”
 -  
do ::start
 -  
require or load Ruby source file
 -  
::result will return a hash that contains filename as key and coverage array as value. A coverage array gives, for each line, the number of line execution by the interpreter. A
nilvalue means coverage is disabled for this line (lines likeelseandend). 
Example
[foo.rb]
s = 0
10.times do |x|
  s += x
end
if s == 45
  p :ok
else
  p :ng
end
[EOF]
require "coverage.so"
Coverage.start
require "foo.rb"
p Coverage.result  #=> {"foo.rb"=>[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]}
 Public Class Methods
  result → hash  Show source 
 static VALUE
rb_coverage_result(VALUE klass)
{
    VALUE coverages = rb_get_coverages();
    VALUE ncoverages = rb_hash_new();
    if (!RTEST(coverages)) {
        rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");
    }
    st_foreach(RHASH_TBL(coverages), coverage_result_i, ncoverages);
    rb_hash_freeze(ncoverages);
    rb_reset_coverages();
    return ncoverages;
} Returns a hash that contains filename as key and coverage array as value and disables coverage measurement.
  start → nil  Show source 
 static VALUE
rb_coverage_start(VALUE klass)
{
    if (!RTEST(rb_get_coverages())) {
        if (rb_coverages == Qundef) {
            rb_coverages = rb_hash_new();
            rb_obj_hide(rb_coverages);
        }
        rb_set_coverages(rb_coverages);
    }
    return Qnil;
} Enables coverage measurement.
    Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.