class SimpleCov::ExitCodes::MinimumCoverageByFileCheck

def covered_percentages

def covered_percentages
  @covered_percentages ||=
    result.covered_percentages.map { |percentage| SimpleCov.round_coverage(percentage) }
end

def exit_code

def exit_code
  SimpleCov::ExitCodes::MINIMUM_COVERAGE
end

def failing?

def failing?
  covered_percentages.any? { |p| p < minimum_coverage_by_file }
end

def initialize(result, minimum_coverage_by_file)

def initialize(result, minimum_coverage_by_file)
  @result = result
  @minimum_coverage_by_file = minimum_coverage_by_file
end

def report

def report
  $stderr.printf(
    "File (%<file>s) is only (%<least_covered_percentage>.2f%%) covered. This is below the expected minimum coverage per file of (%<min_coverage>.2f%%).\n",
    file: result.least_covered_file,
    least_covered_percentage: covered_percentages.min,
    min_coverage: minimum_coverage_by_file
  )
end