class CircleCI::CoverageReporter::Report

Encapsulate a report created by a reporter.

@see Reporters::Base#report

Attributes

base_result[R]
current_result[R]
previous_result[R]
reporter[R]

Public Class Methods

new(reporter, current, base: nil, previous: nil) click to toggle source

@param reporter [Reporters::Base] the reporter of the report @param current [Result] @param base [Result, nil] result at master branch @param previous [Result, nil] result at previous build in same branch

# File lib/circleci/coverage_reporter/report.rb, line 11
def initialize(reporter, current, base: nil, previous: nil)
  @reporter = reporter
  @current_result = current
  @base_result = base
  @previous_result = previous
end

Public Instance Methods

to_s() click to toggle source

@return [String]

# File lib/circleci/coverage_reporter/report.rb, line 19
def to_s
  "#{link}: #{current_result.pretty_coverage}#{emoji}#{progress}"
end

Private Instance Methods

base_diff() click to toggle source

@return [Float, nil]

# File lib/circleci/coverage_reporter/report.rb, line 76
def base_diff
  return unless base_result
  current_result.coverage - base_result.coverage
end
base_progress() click to toggle source

@return [String, nil]

# File lib/circleci/coverage_reporter/report.rb, line 54
def base_progress
  base_diff ? "[master](#{base_result.url}): #{pretty_base_diff}" : nil
end
branch_diff() click to toggle source

@return [Float, nil]

# File lib/circleci/coverage_reporter/report.rb, line 82
def branch_diff
  return unless previous_result
  current_result.coverage - previous_result.coverage
end
branch_progress() click to toggle source

@return [String, nil]

# File lib/circleci/coverage_reporter/report.rb, line 59
def branch_progress
  branch_diff ? "[previous](#{previous_result.url}): #{pretty_branch_diff}" : nil
end
emoji() click to toggle source

@return [String]

# File lib/circleci/coverage_reporter/report.rb, line 33
def emoji
  if base_diff.nil? || base_diff.nan? || base_diff.round(2).zero?
    ''
  elsif base_diff.positive?
    ':chart_with_upwards_trend:'
  else
    ':chart_with_downwards_trend:'
  end
end
pretty_base_diff() click to toggle source

@return [String, nil]

# File lib/circleci/coverage_reporter/report.rb, line 64
def pretty_base_diff
  return unless base_diff
  pretty_diff(base_diff.round(2))
end
pretty_branch_diff() click to toggle source

@return [String, nil]

# File lib/circleci/coverage_reporter/report.rb, line 70
def pretty_branch_diff
  return unless branch_diff
  pretty_diff(branch_diff.round(2))
end
pretty_diff(diff) click to toggle source

@param diff [Float] @return [String]

# File lib/circleci/coverage_reporter/report.rb, line 89
def pretty_diff(diff)
  if diff.nan?
    'NaN'
  elsif diff.positive?
    "+#{diff}"
  elsif diff.negative?
    diff.to_s
  else
    '±0'
  end
end
progress() click to toggle source

@return [String]

# File lib/circleci/coverage_reporter/report.rb, line 44
def progress
  progresses.empty? ? '' : "(#{progresses.join(', ')})"
end
progresses() click to toggle source

@return [Array<String>]

# File lib/circleci/coverage_reporter/report.rb, line 49
def progresses
  [base_progress, branch_progress].compact
end