class SimpleCov::Formatter::ShieldFormatter

Constants

Options
TEXT
VERSION

Public Class Methods

filename() click to toggle source
# File lib/simplecov-formatter-shield.rb, line 5
def filename
  return @filename ||= 'shield.png'
end
filename=(filename) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 9
def filename=(filename)
  @filename = filename
end
generator() click to toggle source
# File lib/simplecov-formatter-shield.rb, line 13
def generator
  self.generator = :shields_io if @generator.nil?
  return @generator
end
generator=(generator) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 18
def generator=(generator)
  @generator = case generator
  when :svg
    require 'simplecov-formatter-shield/generators/svg'
    SimpleCov::Formatter::ShieldFormatter::Generators::Svg
  when :png
    require 'simplecov-formatter-shield/generators/png'
    SimpleCov::Formatter::ShieldFormatter::Generators::Png
  when :shields_io
    require 'simplecov-formatter-shield/generators/shield_io'
    SimpleCov::Formatter::ShieldFormatter::Generators::ShieldsIO
  else
    Logger.warn("Unknown generator #{generator}; pick one of: :svg, :png, :shields_io")
  end

  return @generator
end

Public Instance Methods

format(result) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 40
def format(result)
  percentage = result.covered_percent.to_f.round(2)
  options = Options.new(TEXT, color(percentage), status(percentage))
  puts "Created shield at #{output_path}" if write(image(options))
rescue Generators::Error => error
  puts "Could not create shield: #{output_path} => #{error.message}"
rescue IOError => error
  puts "Could not write file at #{output_path} => #{error.message}"
end

Private Instance Methods

color(percentage) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 63
def color(percentage)
  case percentage
  when 95..100
    :brightgreen
  when 80..95
    :green
  when 70..80
    :yellowgreen
  when 60..70
    :yellow
  when 40..60
    :orange
  else
    :red
  end
end
image(options) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 86
def image(options)
  generator = self.class.generator.new(options)
  return generator.generate
end
output_path() click to toggle source
# File lib/simplecov-formatter-shield.rb, line 58
def output_path
  return File.join(SimpleCov.coverage_path, self.class.filename)
end
status(percentage) click to toggle source
# File lib/simplecov-formatter-shield.rb, line 81
def status(percentage)
  return "#{percentage}%"
end
write(bytes) click to toggle source

Private API

# File lib/simplecov-formatter-shield.rb, line 51
def write(bytes)
  File.open(output_path, 'wb') do |file|
    file << bytes
  end
end