@JRubyMethod(module = true) public static IRubyObject result(ThreadContext context, IRubyObject self) { Ruby runtime = context.runtime; if (!runtime.getCoverageData().isCoverageEnabled()) { throw runtime.newRuntimeError("coverage measurement is not enabled"); } Map<String, Integer[]> coverage = runtime.getCoverageData().resetCoverage(runtime); // populate a Ruby Hash with coverage data RubyHash covHash = RubyHash.newHash(runtime); for (Map.Entry<String, Integer[]> entry : coverage.entrySet()) { RubyArray ary = RubyArray.newArray(runtime, entry.getValue().length); for (int i = 0; i < entry.getValue().length; i++) { Integer integer = entry.getValue()[i]; ary.store(i, integer == null ? runtime.getNil() : runtime.newFixnum(integer)); covHash.fastASetCheckString(runtime, RubyString.newString(runtime, entry.getKey()), ary); } } return covHash; }
@JRubyMethod(module = true) public static IRubyObject result(ThreadContext context, IRubyObject self) { Ruby runtime = context.runtime; if (!runtime.getCoverageData().isCoverageEnabled()) { throw runtime.newRuntimeError("coverage measurement is not enabled"); } Map<String, Integer[]> coverage = runtime.getCoverageData().resetCoverage(runtime); // populate a Ruby Hash with coverage data RubyHash covHash = RubyHash.newHash(runtime); for (Map.Entry<String, Integer[]> entry : coverage.entrySet()) { RubyArray ary = RubyArray.newArray(runtime, entry.getValue().length); for (int i = 0; i < entry.getValue().length; i++) { Integer integer = entry.getValue()[i]; ary.store(i, integer == null ? runtime.getNil() : runtime.newFixnum(integer)); covHash.fastASetCheckString(runtime, RubyString.newString(runtime, entry.getKey()), ary); } } return covHash; }
@JRubyMethod(module = true) public static IRubyObject result(ThreadContext context, IRubyObject self) { Ruby runtime = context.runtime; if (!runtime.getCoverageData().isCoverageEnabled()) { throw runtime.newRuntimeError("coverage measurement is not enabled"); } IRubyObject result = convertCoverageToRuby(context, runtime, runtime.getCoverageData().getCoverage()); runtime.getCoverageData().resetCoverage(runtime); return result; }
@JRubyMethod(module = true) public static IRubyObject result(ThreadContext context, IRubyObject self) { Ruby runtime = context.runtime; if (!runtime.getCoverageData().isCoverageEnabled()) { throw runtime.newRuntimeError("coverage measurement is not enabled"); } IRubyObject result = convertCoverageToRuby(context, runtime, runtime.getCoverageData().getCoverage()); runtime.getCoverageData().resetCoverage(runtime); return result; }