Method: Slather::CoverageFile#branch_coverage_data

Defined in:
lib/slather/coverage_file.rb

#branch_coverage_dataObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/slather/coverage_file.rb', line 110

def branch_coverage_data
  @branch_coverage_data ||= begin
    branch_coverage_data = Hash.new

    gcov_data.scan(/(^(\s+(-|#+|[0-9]+):\s+[1-9]+:(.*)$\r?\n)(^branch\s+[0-9]+\s+[a-zA-Z0-9]+\s+[a-zA-Z0-9]+$\r?\n)+)+/) do |data|
      lines = data[0].split("\n")
      line_number = lines[0].split(':')[1].strip.to_i
      branch_coverage_data[line_number] = lines[1..-1].map do |line|
        if line.split(' ')[2].strip == "never"
          0
        else
          line.split(' ')[3].strip.to_i
        end
      end
    end
    branch_coverage_data
  end
end