Class: SimpleCov::Formatter::ShieldFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/simplecov-formatter-shield.rb,
lib/simplecov-formatter-shield/version.rb,
lib/simplecov-formatter-shield/generators.rb,
lib/simplecov-formatter-shield/generators/png.rb,
lib/simplecov-formatter-shield/generators/svg.rb,
lib/simplecov-formatter-shield/generators/error.rb,
lib/simplecov-formatter-shield/generators/shields_io.rb

Defined Under Namespace

Modules: Generators Classes: Options

Constant Summary collapse

TEXT =
'coverage'.freeze
VERSION =
'0.1.0'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.filenameObject



5
6
7
# File 'lib/simplecov-formatter-shield.rb', line 5

def filename
  return @filename ||= 'shield.png'
end

.filename=(filename) ⇒ Object



9
10
11
# File 'lib/simplecov-formatter-shield.rb', line 9

def filename=(filename)
  @filename = filename
end

.generatorObject



13
14
15
16
# File 'lib/simplecov-formatter-shield.rb', line 13

def generator
  self.generator = :shields_io if @generator.nil?
  return @generator
end

.generator=(generator) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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

Instance Method Details

#format(result) ⇒ Object



40
41
42
43
44
45
46
47
48
# 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