simplecov-shield 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/simplecov-shield.rb +64 -0
  3. metadata +130 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 86f38ed5f1c0cfbef4fc810bbb00a62b3a6e1e3e
4
+ data.tar.gz: 3c0166f0174245a50113f961cc1785f1d2a7aa7a
5
+ SHA512:
6
+ metadata.gz: 2bd0940ba592a73c66ffb2b546276e6e3951ff1b8870183d3a538e922762242386be55686f2fe2f39aab073d433e43567383ea0d9d9eddf7f6c7e09dd2382d3c
7
+ data.tar.gz: 3ccac1f026bd720fba8adade4847931a24dd1c8d43ab20b10b0209896e1929a071368ef554ce742c1c5e77a1c705ea2c2214f7450147f85e58b488927345e04d
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+
3
+ require 'simplecov'
4
+ require 'httparty'
5
+
6
+ module SimpleCov::Formatter
7
+ class ShieldFormatter
8
+ SHIELD_ROOT = 'http://img.shields.io/badge'
9
+ STYLES = ['flat']
10
+
11
+ @config = {
12
+ :badge_name => 'coverage',
13
+ :precision => 0,
14
+ :style => nil,
15
+ }
16
+
17
+ def format(result)
18
+ @result = result
19
+ generate_shield
20
+ end
21
+
22
+ def generate_shield
23
+ File.open(shield_file_path, 'w') do |file|
24
+ file.write HTTParty.get(shield_url).parsed_response
25
+ end
26
+ end
27
+
28
+ def shield_url
29
+ url = "#{SHIELD_ROOT}/#{badge_name}-#{coverage_percent}%-#{color}.svg"
30
+ url += "?style=#{style}" if STYLES.include? style
31
+
32
+ URI.encode(url)
33
+ end
34
+
35
+ def coverage_percent
36
+ @coverage_percent ||= @result.covered_percent.round(precision)
37
+ end
38
+
39
+ def self.config
40
+ @config
41
+ end
42
+
43
+ private
44
+ def shield_file_path
45
+ "#{SimpleCov.coverage_path}/coverage.svg"
46
+ end
47
+
48
+ def color
49
+ case coverage_percent
50
+ when 90..100
51
+ 'brightgreen'
52
+ when 80..89
53
+ 'yellow'
54
+ else
55
+ 'red'
56
+ end
57
+ end
58
+
59
+ @config.each do |key, val|
60
+ define_method(key) { ShieldFormatter.config[key] }
61
+ end
62
+
63
+ end
64
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simplecov-shield
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Terris
8
+ - Lesley Dennison
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-05-31 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 0.13.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 0.13.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: simplecov
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 0.8.2
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: 0.8.2
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: codeclimate-test-reporter
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ description: Shield generator for SimpleCov
99
+ email:
100
+ - atterris@gmail.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - lib/simplecov-shield.rb
106
+ homepage: https://github.com/aterris/simplecov-shield
107
+ licenses:
108
+ - MIT
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.0.6
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Shield generator for SimpleCov
130
+ test_files: []