class MetricFu::RCovFormatCoverage
Constants
- NEW_FILE_MARKER
Public Class Methods
new(rcov_text)
click to toggle source
# File lib/metric_fu/metrics/rcov/rcov_format_coverage.rb, line 5 def initialize(rcov_text) fail "no rcov text" if rcov_text.nil? @rcov_text = rcov_text end
Public Instance Methods
to_h()
click to toggle source
# File lib/metric_fu/metrics/rcov/rcov_format_coverage.rb, line 10 def to_h rcov_text = @rcov_text.split(NEW_FILE_MARKER) rcov_text.shift # Throw away the first entry - it's the execution time etc. files = assemble_files(rcov_text) TestCoverage.new(files).to_h end
Private Instance Methods
assemble_files(rcov_text)
click to toggle source
# File lib/metric_fu/metrics/rcov/rcov_format_coverage.rb, line 22 def assemble_files(rcov_text) files = {} rcov_text.each_slice(2) { |out| files[out.first.strip] = out.last } files.each_pair { |fname, content| files[fname] = content.split("\n") } files.each_pair do |fname, content| content.map! do |raw_line| covered_line = if raw_line.start_with?("--") nil # simplecov ignores some lines elsif raw_line.start_with?("!!") 0 else 1 end RCovLine.new(raw_line[3..-1], covered_line).to_h end content.reject! { |line| line[:content].to_s == "" } files[fname] = { lines: content } end files end