class SimpleCov::Formatter::ShieldJSONFormatter

shield json generator

Constants

VERSION

Public Instance Methods

format(result) click to toggle source
# File lib/simplecov-shield-json.rb, line 12
def format(result)
  shield_url = shield_json(result)

  File.open(output_filepath, 'w+') do |file|
    file.puts URI.open(shield_url).read
  end

  puts output_message(result)

  shield_url
end

Private Instance Methods

color(coverage_percent) click to toggle source
# File lib/simplecov-shield-json.rb, line 43
def color(coverage_percent)
  case coverage_percent
  when 90..100
    'brightgreen'
  when 80..89
    'yellow'
  else
    'red'
  end
end
output_filename() click to toggle source
# File lib/simplecov-shield-json.rb, line 26
def output_filename
  'badge.svg'
end
output_filepath() click to toggle source
# File lib/simplecov-shield-json.rb, line 30
def output_filepath
  File.join(output_path, output_filename)
end
output_message(result) click to toggle source
# File lib/simplecov-shield-json.rb, line 34
def output_message(result)
  "Coverage report generated for #{result.command_name} to #{output_filepath}.  \
  #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered."
end
output_path() click to toggle source
# File lib/simplecov-shield-json.rb, line 39
def output_path
  SimpleCov.coverage_path
end
shield_json(result) click to toggle source
# File lib/simplecov-shield-json.rb, line 54
def shield_json(result)
  "https://img.shields.io/badge/Coverage-#{result.covered_percent.round(2)}#{CGI.escape('%')}-#{color(result.covered_percent)}.svg"
end