summaryrefslogtreecommitdiff
path: root/ext/coverage/lib/coverage.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/coverage/lib/coverage.rb')
-rw-r--r--ext/coverage/lib/coverage.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/coverage/lib/coverage.rb b/ext/coverage/lib/coverage.rb
index 7a6ef0e100..4bd20e22cb 100644
--- a/ext/coverage/lib/coverage.rb
+++ b/ext/coverage/lib/coverage.rb
@@ -1,12 +1,17 @@
require "coverage.so"
module Coverage
+ # call-seq:
+ # line_stub(file) -> array
+ #
+ # A simple helper function that creates the "stub" of line coverage
+ # from a given source code.
def self.line_stub(file)
lines = File.foreach(file).map { nil }
iseqs = [RubyVM::InstructionSequence.compile_file(file)]
until iseqs.empty?
iseq = iseqs.pop
- iseq.trace_points.each {|n, _| lines[n - 1] = 0 }
+ iseq.trace_points.each {|n, type| lines[n - 1] = 0 if type == :line }
iseq.each_child {|child| iseqs << child }
end
lines