From a5e687d8b0b9f526019afbdc95977eaa63ebd773 Mon Sep 17 00:00:00 2001 From: pikesley Date: Wed, 3 Jun 2015 09:59:24 +0100 Subject: [PATCH] Support size badge --- config/services.yaml | 7 +++++++ features/size.feature | 19 +++++++++++++++++++ lib/badger/cli.rb | 3 +++ lib/badger/service.rb | 3 ++- lib/badger/version.rb | 2 +- spec/size_spec.rb | 20 ++++++++++++++++++++ 6 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 features/size.feature create mode 100644 spec/size_spec.rb diff --git a/config/services.yaml b/config/services.yaml index f28e4b0..db73c76 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -30,3 +30,10 @@ issues: service_root: githubbadges.herokuapp.com url_path: github.com suffix: issues + +size: + alt_text: Repo Size + service_root: reposs.herokuapp.com + url_path: github.com + # REST? Fuck REST + ugly_cruft: ?path= diff --git a/features/size.feature b/features/size.feature new file mode 100644 index 0000000..5173458 --- /dev/null +++ b/features/size.feature @@ -0,0 +1,19 @@ +Feature: Github issues and PRs + +Background: +Given git remote is "https://github.com/doge/wow" + +@travis @gemnasium @coveralls @gemspec @mit +Scenario: Include 'size' badge + When I successfully run `badger badge --size /tmp/wow_repo` + Then the output should contain: + """ + [![Build Status](http://img.shields.io/travis/doge/wow.svg)](https://travis-ci.org/doge/wow) + [![Dependency Status](http://img.shields.io/gemnasium/doge/wow.svg)](https://gemnasium.com/doge/wow) + [![Coverage Status](http://img.shields.io/coveralls/doge/wow.svg)](https://coveralls.io/r/doge/wow) + [![Code Climate](http://img.shields.io/codeclimate/github/doge/wow.svg)](https://codeclimate.com/github/doge/wow) + [![Repo Size](http://reposs.herokuapp.com/?path=doge/wow.svg)](https://github.com/doge/wow) + [![Gem Version](http://img.shields.io/gem/v/suchgem.svg)](https://rubygems.org/gems/suchgem) + [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org) + [![Badges](http://img.shields.io/:badges-8/8-ff6799.svg)](https://github.com/badges/badgerbadgerbadger) + """ diff --git a/lib/badger/cli.rb b/lib/badger/cli.rb index 48d9276..7be0745 100644 --- a/lib/badger/cli.rb +++ b/lib/badger/cli.rb @@ -14,6 +14,7 @@ def version long_desc File.read File.join File.dirname( __FILE__), '..', '..', 'DESC.md' method_option :png, :type => :boolean, :default => false, :desc => 'Generate PNG badges instead of the default SVG (because sometimes Github does caching things)' method_option :pulls, :type => :boolean, :default => false, :desc => 'Generate Github pull-request and issue-count badges' + method_option :size, :type => :boolean, :default => false, :desc => 'Generate repo size badge' method_option :style, :type => :string, :default => nil, :desc => "Choose a different badge style (currently supported: #{Config.instance.config['valid_styles'].join ', '})" def badge dir = '.' @@ -31,6 +32,8 @@ def badge dir = '.' @badger.add 'issues' if options[:pulls] @badger.add 'pulls' if options[:pulls] + @badger.add 'size' if options[:size] + if gemspec_params = Badger.search_gemspec(dir) @badger.rubygem gemspec_params[:rubygem] if gemspec_params[:licenses] diff --git a/lib/badger/service.rb b/lib/badger/service.rb index 804241b..9712d4e 100644 --- a/lib/badger/service.rb +++ b/lib/badger/service.rb @@ -17,8 +17,9 @@ def self.badge name, github_slug ] end - badge_url = '%s/%s' % [ + badge_url = '%s/%s%s' % [ base_url, + params['ugly_cruft'], github_slug ] diff --git a/lib/badger/version.rb b/lib/badger/version.rb index e3490cc..81b3a47 100644 --- a/lib/badger/version.rb +++ b/lib/badger/version.rb @@ -1,3 +1,3 @@ module Badger - VERSION = "0.12.0" + VERSION = "0.13.0" end diff --git a/spec/size_spec.rb b/spec/size_spec.rb new file mode 100644 index 0000000..c94c44a --- /dev/null +++ b/spec/size_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +module Badger + describe Badger do + before :each do + @badger = Badger.new "https://github.com/doge/wow" + end + + after :each do + Config.instance.reset! + end + + context 'size badge' do + it 'has a size badge' do + @badger.add 'size' + expect(@badger[0]).to eq '[![Repo Size](http://reposs.herokuapp.com/?path=doge/wow.svg)](https://github.com/doge/wow)' + end + end + end +end