badgerbadgerbadger 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/config.yaml +2 -1
- data/config/licenses.yaml +1 -1
- data/features/licenses.feature +8 -0
- data/features/rubygems.feature +12 -1
- data/features/support/hooks/rubygems.rb +17 -0
- data/lib/badger.rb +1 -0
- data/lib/badger/badge.rb +9 -0
- data/lib/badger/cli.rb +3 -1
- data/lib/badger/config.rb +2 -2
- data/lib/badger/helpers.rb +12 -7
- data/lib/badger/license.rb +8 -7
- data/lib/badger/rubygem.rb +8 -3
- data/lib/badger/service.rb +7 -4
- data/lib/badger/version.rb +1 -1
- data/spec/badger_spec.rb +7 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ec7710cd5d4ef7c1241f118046e64b48c2d9d05
|
4
|
+
data.tar.gz: ae51cb87093ec657c6ab2a3722dab3bb354720a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4f2b08424a3c9f284811befdb5f924ebf228a24e2623828ffd106f96cf025a18934059a4b81f07765c6d635bb93c42510d5a5919e37f76f2b62bdfaf6a411fe
|
7
|
+
data.tar.gz: 1deda617e2d5f783a3b48987d7e96189e519aa9cc0c267a12a92b7da8e9619467f90063bc83243557e783b57215e8c48bd6a7c7f66560ed3b51991809643f1d5
|
data/config/config.yaml
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
badge_service: img.shields.io
|
1
|
+
badge_service: img.shields.io
|
2
|
+
license_colour: blue
|
data/config/licenses.yaml
CHANGED
data/features/licenses.feature
CHANGED
@@ -44,6 +44,14 @@ GPL
|
|
44
44
|
MIT
|
45
45
|
"""
|
46
46
|
|
47
|
+
@license @gpl3
|
48
|
+
Scenario: Generate GPL3 license
|
49
|
+
When I successfully run `badger badge /tmp/wow_repo`
|
50
|
+
Then the output should contain:
|
51
|
+
"""
|
52
|
+
](http://www.gnu.org/licenses/gpl-3.0.html)
|
53
|
+
"""
|
54
|
+
|
47
55
|
@license @doge-license
|
48
56
|
Scenario: Attempt to generate an unknown license type
|
49
57
|
When I successfully run `badger badge /tmp/wow_repo`
|
data/features/rubygems.feature
CHANGED
@@ -10,4 +10,15 @@ Feature: Get rubygems badge
|
|
10
10
|
"""
|
11
11
|
[](https://rubygems.org/gems/suchgem)
|
12
12
|
[](http://doge.mit-license.org)
|
13
|
-
"""
|
13
|
+
"""
|
14
|
+
|
15
|
+
@gemspecmultilicense @gpl3
|
16
|
+
Scenario: Get multiple licenses
|
17
|
+
When I successfully run `badger badge /tmp/wow_repo`
|
18
|
+
Then the output should contain:
|
19
|
+
"""
|
20
|
+
[](https://rubygems.org/gems/suchgem)
|
21
|
+
[](http://doge.mit-license.org)
|
22
|
+
[](http://www.apache.org/licenses/LICENSE-2.0.html)
|
23
|
+
[](http://www.gnu.org/licenses/gpl-3.0.html)
|
24
|
+
"""
|
@@ -10,6 +10,23 @@ Before '@gemspec' do
|
|
10
10
|
end
|
11
11
|
EOF
|
12
12
|
|
13
|
+
f = File.open "#{$temp_repo}/suchgem.gemspec", 'w'
|
14
|
+
f.write fakespec
|
15
|
+
f.close
|
16
|
+
end
|
17
|
+
|
18
|
+
Before '@gemspecmultilicense' do
|
19
|
+
fakespec = <<EOF
|
20
|
+
# coding: utf-8
|
21
|
+
lib = File.expand_path('../lib', __FILE__)
|
22
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
23
|
+
|
24
|
+
Gem::Specification.new do |spec|
|
25
|
+
spec.name = 'suchgem'
|
26
|
+
spec.licenses = ['MIT', 'apache']
|
27
|
+
end
|
28
|
+
EOF
|
29
|
+
|
13
30
|
f = File.open "#{$temp_repo}/suchgem.gemspec", 'w'
|
14
31
|
f.write fakespec
|
15
32
|
f.close
|
data/lib/badger.rb
CHANGED
data/lib/badger/badge.rb
ADDED
data/lib/badger/cli.rb
CHANGED
@@ -58,7 +58,9 @@ The supported license details are in https://github.com/pikesley/badger/blob/mas
|
|
58
58
|
|
59
59
|
if gemspec_params = Badger.search_gemspec(dir)
|
60
60
|
@badger.rubygem gemspec_params[:rubygem]
|
61
|
-
|
61
|
+
gemspec_params[:licenses].each do |license_type|
|
62
|
+
@badger.license license_type
|
63
|
+
end
|
62
64
|
end
|
63
65
|
|
64
66
|
if license_type = Badger.find_license(dir)
|
data/lib/badger/config.rb
CHANGED
data/lib/badger/helpers.rb
CHANGED
@@ -16,20 +16,24 @@ module Badger
|
|
16
16
|
lines.grep(/coveralls/).any?
|
17
17
|
end
|
18
18
|
|
19
|
+
def Badger.spec_files dir
|
20
|
+
(Dir.entries dir).select { |i| i =~ /gemspec/ }
|
21
|
+
end
|
22
|
+
|
19
23
|
def Badger.gemfiles dir
|
20
24
|
targets = []
|
21
|
-
targets += (Dir.entries dir).select { |i| /Gemfile
|
22
|
-
targets +=
|
25
|
+
targets += (Dir.entries dir).select { |i| i =~ /Gemfile/ }
|
26
|
+
targets += spec_files dir
|
23
27
|
targets
|
24
28
|
end
|
25
29
|
|
26
30
|
def Badger.find_license dir
|
27
|
-
license_file = (Dir.entries dir).select { |i| /LICENSE/
|
31
|
+
license_file = (Dir.entries dir).select { |i| i =~ /LICENSE/ }[0]
|
28
32
|
|
29
33
|
if license_file
|
30
34
|
words = File.open(File.join(dir, license_file), 'r').read
|
31
35
|
Config.instance.licenses.each_pair do |k, v|
|
32
|
-
if /#{v['regex']}/im
|
36
|
+
if words =~ /#{v['regex']}/im
|
33
37
|
return k
|
34
38
|
end
|
35
39
|
end
|
@@ -39,13 +43,14 @@ module Badger
|
|
39
43
|
end
|
40
44
|
|
41
45
|
def Badger.search_gemspec dir
|
42
|
-
spec_file = (
|
46
|
+
spec_file = spec_files(dir)[0]
|
43
47
|
|
44
48
|
if spec_file
|
45
49
|
params = {}
|
46
50
|
gs = File.readlines(File.join(dir, spec_file))
|
47
|
-
params[:rubygem] = (gs.grep /\.name /)[0].
|
48
|
-
|
51
|
+
params[:rubygem] = eval (gs.grep /\.name /)[0].sub('spec.', '')
|
52
|
+
l = eval (gs.grep /licenses?/)[0].sub('spec.', '')
|
53
|
+
params[:licenses] = l.class.name == 'Array' ? l : [l]
|
49
54
|
end
|
50
55
|
|
51
56
|
params || nil
|
data/lib/badger/license.rb
CHANGED
@@ -4,18 +4,19 @@ module Badger
|
|
4
4
|
type = type.downcase
|
5
5
|
return nil unless params = Config.instance.licenses[type]
|
6
6
|
|
7
|
-
|
8
|
-
if /%s
|
9
|
-
|
7
|
+
target_url = params['url']
|
8
|
+
if target_url =~ /%s/
|
9
|
+
target_url = target_url % owner
|
10
10
|
end
|
11
11
|
|
12
12
|
badge_text = type unless badge_text = params['badge_text']
|
13
|
-
|
14
|
-
|
15
|
-
Config.instance.badge_service,
|
13
|
+
badge_url = 'http://%s/:license-%s-%s.svg' % [
|
14
|
+
Config.instance.config['badge_service'],
|
16
15
|
badge_text,
|
17
|
-
|
16
|
+
Config.instance.config['license_colour']
|
18
17
|
]
|
18
|
+
|
19
|
+
Badger.badge 'License', badge_url, target_url
|
19
20
|
end
|
20
21
|
|
21
22
|
def self.licenses
|
data/lib/badger/rubygem.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
module Badger
|
2
2
|
class Rubygem
|
3
3
|
def self.badge name
|
4
|
-
|
5
|
-
Config.instance.badge_service,
|
6
|
-
name,
|
4
|
+
badge_url = 'http://%s/gem/v/%s.svg' % [
|
5
|
+
Config.instance.config['badge_service'],
|
7
6
|
name
|
8
7
|
]
|
8
|
+
|
9
|
+
target_url = 'https://rubygems.org/gems/%s' % [
|
10
|
+
name
|
11
|
+
]
|
12
|
+
|
13
|
+
Badger.badge 'Gem Version', badge_url, target_url
|
9
14
|
end
|
10
15
|
end
|
11
16
|
end
|
data/lib/badger/service.rb
CHANGED
@@ -4,14 +4,17 @@ module Badger
|
|
4
4
|
return nil unless params = Config.instance.services[name]
|
5
5
|
params = Config.instance.services[name]
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Config.instance.badge_service,
|
7
|
+
badge_url = 'http://%s/%s/%s.svg' % [
|
8
|
+
Config.instance.config['badge_service'],
|
10
9
|
params['badge_slug'],
|
11
|
-
github_slug
|
10
|
+
github_slug
|
11
|
+
]
|
12
|
+
target_url = 'https://%s/%s' % [
|
12
13
|
params['url'],
|
13
14
|
github_slug
|
14
15
|
]
|
16
|
+
|
17
|
+
Badger.badge params['alt_text'], badge_url, target_url
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
data/lib/badger/version.rb
CHANGED
data/spec/badger_spec.rb
CHANGED
@@ -60,6 +60,13 @@ module Badger
|
|
60
60
|
@badger[0].should == "[](http://www.gnu.org/licenses/gpl-3.0.html)"
|
61
61
|
end
|
62
62
|
|
63
|
+
it 'should be fine with multiple licenses' do
|
64
|
+
@badger.license 'mit'
|
65
|
+
@badger.license 'apache'
|
66
|
+
@badger[0].should == "[](http://doge.mit-license.org)"
|
67
|
+
@badger[1].should == "[](http://www.apache.org/licenses/LICENSE-2.0.html)"
|
68
|
+
end
|
69
|
+
|
63
70
|
it 'should generate nothing for an unknown license' do
|
64
71
|
@badger.license 'doge-license'
|
65
72
|
@badger.length.should == 0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: badgerbadgerbadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pikesley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -238,6 +238,7 @@ files:
|
|
238
238
|
- features/support/hooks/rubygems.rb
|
239
239
|
- features/support/hooks/services.rb
|
240
240
|
- lib/badger.rb
|
241
|
+
- lib/badger/badge.rb
|
241
242
|
- lib/badger/badger.rb
|
242
243
|
- lib/badger/cli.rb
|
243
244
|
- lib/badger/config.rb
|