class SimpleCov::Formatter::ShieldsBadge
Constants
- VERSION
Public Instance Methods
format(result)
click to toggle source
# File lib/shields_badge.rb, line 6 def format(result) coverage = result.covered_percent generate_badge(coverage) upload_to_gh_pages end
Private Instance Methods
badge_url(coverage)
click to toggle source
# File lib/shields_badge.rb, line 18 def badge_url(coverage) color = coverage_color(coverage) "https://img.shields.io/badge/coverage-#{coverage.round(2)}%25-#{color}.svg" end
coverage_color(coverage)
click to toggle source
# File lib/shields_badge.rb, line 23 def coverage_color(coverage) case coverage when 0..20 then :red when 20..40 then :orange when 40..60 then :yellow when 60..80 then :yellowgreen when 80..90 then :green else :brightgreen end end
generate_badge(coverage)
click to toggle source
# File lib/shields_badge.rb, line 14 def generate_badge(coverage) %x(curl #{badge_url(coverage)} > badge.svg) end
upload_to_gh_pages()
click to toggle source
# File lib/shields_badge.rb, line 34 def upload_to_gh_pages github_user = ENV["GITHUB_USER"] github_mail = ENV["GITHUB_MAIL"] github_org = ENV["GITHUB_ORG"] github_repo = ENV["GITHUB_REPO"] github_token = ENV["GITHUB_ACCESS_TOKEN"] return unless (github_user and github_mail and github_org and github_repo and github_token) %x(mv badge.svg ../) %x(git remote remove upstream) %x(git remote add upstream 'https://#{github_token}@github.com/#{github_org}/#{github_repo}.git' > /dev/null 2> /dev/null) %x(git config --global user.name #{github_user}) %x(git config --global user.email #{github_mail}) %x(git fetch upstream) %x(git checkout gh-pages -f) %x(git reset -- .) %x(mv ../badge.svg .) %x(git add badge.svg) %x(git commit -a -m 'CI: Coverage for $COMMIT_ID') %x(git push upstream gh-pages:gh-pages) end