class SimpleCov::Formatter::ShieldFormatter::Generators::ShieldsIO

TODO: Make configurable

Constants

EXTENSION
HOST
PATH
STYLE

Public Class Methods

new(options) click to toggle source
# File lib/simplecov-formatter-shield/generators/shields_io.rb, line 14
def initialize(options)
  @options = options
  @image = nil
end

Public Instance Methods

build_uri() click to toggle source
# File lib/simplecov-formatter-shield/generators/shields_io.rb, line 34
def build_uri
  parts = [@options.text, @options.status, @options.color].map { |part| CGI.escape(part.to_s) }
  path = "/#{PATH}/#{parts.join('-')}.#{EXTENSION}"
  return URI::HTTPS.build(host: HOST, path: path, query: "style=#{STYLE}")
end
generate() click to toggle source
# File lib/simplecov-formatter-shield/generators/shields_io.rb, line 19
def generate
  return @image ||= begin
    generate!
  end
end

Private Instance Methods

generate!() click to toggle source
# File lib/simplecov-formatter-shield/generators/shields_io.rb, line 25
def generate!
  uri = build_uri
  response = Net::HTTP.get_response(uri)
  raise(Generators::Error, "Could not fetch image at #{uri} => #{response.msg} (#{response.code})") unless (200..399).cover?(response.code.to_i)

  return response.body
end