class DeepCover::Coverage::Analysis

Public Class Methods

template() click to toggle source
# File lib/deep_cover/coverage/analysis.rb, line 25
def self.template
  {node: Analyser::Node, per_char: Analyser::PerChar, branch: Analyser::Branch}
end

Public Instance Methods

analyser_map() click to toggle source
# File lib/deep_cover/coverage/analysis.rb, line 9
def analyser_map
  covered_codes.map do |covered_code|
    [covered_code, compute_analysers(covered_code)]
  end.to_h
end
overall() click to toggle source
# File lib/deep_cover/coverage/analysis.rb, line 19
def overall
  return 100 if stat_map.empty?
  node, branch = Tools.merge(*stat_map.values, :+).values_at(:node, :branch)
  (node + branch).percent_covered
end
stat_map() click to toggle source
# File lib/deep_cover/coverage/analysis.rb, line 15
def stat_map
  analyser_map.transform_values { |a| a.transform_values(&:stats) }
end

Private Instance Methods

compute_analysers(covered_code) click to toggle source
# File lib/deep_cover/coverage/analysis.rb, line 31
def compute_analysers(covered_code)
  base = Analyser::Node.new(covered_code, **options)
  {node: base}.merge!(
      {
        per_char: Analyser::PerChar,
        branch: Analyser::Branch,
      }.transform_values { |klass| klass.new(base, **options) }
  )
end