class RSpec::Coverage::Result
Attributes
root[R]
Public Class Methods
new(root, coverage={})
click to toggle source
# File lib/rspec/coverage/result.rb, line 32 def initialize root, coverage={} @root, @coverage = root, coverage end
traverse(*results, &block)
click to toggle source
# File lib/rspec/coverage/result.rb, line 8 def self.traverse *results, &block new("", results.shift).traverse(*results, &block).to_h end
Public Instance Methods
to_h()
click to toggle source
# File lib/rspec/coverage/result.rb, line 36 def to_h @coverage.dup end
traverse(*results, &block)
click to toggle source
# File lib/rspec/coverage/result.rb, line 12 def traverse *results, &block RSpec::Coverage::Result.new(root, @coverage.dup).traverse!(*results, &block) end
traverse!(*results) { |file, *map { |ls| ls }| ... }
click to toggle source
# File lib/rspec/coverage/result.rb, line 16 def traverse! *results results.unshift self files = results.map(&:keys).flatten.uniq files.each do |file| next unless file.start_with? root lines = results.map{ |r| r[file] || [] } len = lines.map(&:length).max @coverage[file] = len.times.map do |i| yield file, *lines.map { |ls| ls[i] } end end self end