Module: SixthSense::Runners::CoverageSnapshot
- Defined in:
- lib/sixth_sense/runners/coverage_snapshot.rb
Class Method Summary collapse
- .branch_executed?(branch) ⇒ Boolean
- .branch_key(branch) ⇒ Object
- .covered_branches(branches) ⇒ Object
- .covered_lines(line_counts) ⇒ Object
- .executable_branches(branches) ⇒ Object
- .executable_lines(line_counts) ⇒ Object
- .snapshot_for(result) ⇒ Object
Class Method Details
.branch_executed?(branch) ⇒ Boolean
55 56 57 58 59 60 61 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 55 def branch_executed?(branch) values = branch.respond_to?(:last) ? branch.last : branch return values.to_i.positive? if values.is_a?(Integer) return values.values.any? { |count| count.to_i.positive? } if values.respond_to?(:values) false end |
.branch_key(branch) ⇒ Object
51 52 53 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 51 def branch_key(branch) branch.respond_to?(:first) ? branch.first.inspect : branch.inspect end |
.covered_branches(branches) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 37 def covered_branches(branches) return [] unless branches.respond_to?(:each) branches.each_with_index.filter_map do |branch, index| "#{branch_key(branch)}:#{index}" if branch_executed?(branch) end end |
.covered_lines(line_counts) ⇒ Object
29 30 31 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 29 def covered_lines(line_counts) Array(line_counts).each_with_index.filter_map { |count, index| index + 1 if count.to_i.positive? } end |
.executable_branches(branches) ⇒ Object
45 46 47 48 49 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 45 def executable_branches(branches) return [] unless branches.respond_to?(:each) branches.each_with_index.map { |branch, index| "#{branch_key(branch)}:#{index}" } end |
.executable_lines(line_counts) ⇒ Object
33 34 35 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 33 def executable_lines(line_counts) Array(line_counts).each_with_index.filter_map { |count, index| index + 1 unless count.nil? } end |
.snapshot_for(result) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/sixth_sense/runners/coverage_snapshot.rb', line 8 def snapshot_for(result) lines = {} executable_lines = {} branches = {} executable_branches = {} result.each do |path, payload| line_counts = payload.is_a?(Hash) ? payload[:lines] || payload["lines"] : payload branch_counts = payload[:branches] || payload["branches"] if payload.is_a?(Hash) lines[path] = covered_lines(line_counts) executable_lines[path] = executable_lines(line_counts) branches[path] = covered_branches(branch_counts) executable_branches[path] = executable_branches(branch_counts) end { "lines" => lines, "executable_lines" => executable_lines, "branches" => branches, "executable_branches" => executable_branches } end |