class Undercover::Formatter

Public Class Methods

new(results) click to toggle source
# File lib/undercover/formatter.rb, line 5
def initialize(results)
  @results = results
end

Public Instance Methods

to_s() click to toggle source
# File lib/undercover/formatter.rb, line 9
def to_s
  return success unless @results.any?

  ([warnings_header] + formatted_warnings).join("\n")
end

Private Instance Methods

formatted_warnings() click to toggle source
# File lib/undercover/formatter.rb, line 17
def formatted_warnings
  @results.map.with_index(1) do |res, idx|
    "🚨 #{idx}) node `#{res.node.name}` type: #{res.node.human_name},\n" +
      (' ' * pad_size) + "loc: #{res.file_path_with_lines}," \
      " coverage: #{res.coverage_f * 100}%\n" +
      res.pretty_print
  end
end
pad_size() click to toggle source
# File lib/undercover/formatter.rb, line 37
def pad_size
  5 + (@results.size - 1).to_s.length
end
success() click to toggle source
# File lib/undercover/formatter.rb, line 26
def success
  "#{Rainbow('undercover').bold.green}: ✅ No coverage" \
  ' is missing in latest changes'
end
warnings_header() click to toggle source
# File lib/undercover/formatter.rb, line 31
def warnings_header
  "#{Rainbow('undercover').bold.red}: " \
  '👮‍♂️ some methods have no test coverage! Please add specs for' \
  ' methods listed below'
end