badgerbadgerbadger 0.5.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c2275056d6d78d8d187ba9513cf496220319068
4
- data.tar.gz: 2f7b3f8cd6908965911ad8d13dbf311d89c3aedc
3
+ metadata.gz: 4ec7710cd5d4ef7c1241f118046e64b48c2d9d05
4
+ data.tar.gz: ae51cb87093ec657c6ab2a3722dab3bb354720a0
5
5
  SHA512:
6
- metadata.gz: a2e731e86ee1b73e6ca3acfb56ce8c430aac671fe9f00cc5b5c94e6293afb265046fea654090f5ee21dcb298247c4f421fc7654e05f2df8e978b67249bf4ba31
7
- data.tar.gz: 400f85d23d2a15c7b39bac6cbf505b73aff2f862a809f72811f4bf9291cc49ec4d36679fc15105a2dd256a5d2d8f5c641a94673d1c9cc29fc7f59a4f586e55cb
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
@@ -1,4 +1,4 @@
1
- # license_name: - as found in a gemspec
1
+ # license_name: - as found in a gemspec (but downcased)
2
2
  # url: - where the license lives
3
3
  # regex: - text to look for in the license file
4
4
  # badge-text: - text to use in the generated badge, if different from license_name
@@ -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
+ ![License](http://img.shields.io/:license-gpl3-blue.svg)](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`
@@ -10,4 +10,15 @@ Feature: Get rubygems badge
10
10
  """
11
11
  [![Gem Version](http://img.shields.io/gem/v/suchgem.svg)](https://rubygems.org/gems/suchgem)
12
12
  [![License](http://img.shields.io/:license-mit-blue.svg)](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
+ [![Gem Version](http://img.shields.io/gem/v/suchgem.svg)](https://rubygems.org/gems/suchgem)
21
+ [![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org)
22
+ [![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)
23
+ [![License](http://img.shields.io/:license-gpl3-blue.svg)](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
@@ -8,4 +8,5 @@ require 'badger/service'
8
8
  require 'badger/license'
9
9
  require 'badger/rubygem'
10
10
  require 'badger/helpers'
11
+ require 'badger/badge'
11
12
 
@@ -0,0 +1,9 @@
1
+ module Badger
2
+ def Badger.badge text, badge_url, target_url
3
+ "[![%s](%s)](%s)" % [
4
+ text,
5
+ badge_url,
6
+ target_url
7
+ ]
8
+ end
9
+ end
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
- @badger.license gemspec_params[:license]
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
@@ -20,8 +20,8 @@ module Badger
20
20
  @licenses
21
21
  end
22
22
 
23
- def badge_service
24
- @config['badge_service']
23
+ def config
24
+ @config
25
25
  end
26
26
  end
27
27
  end
@@ -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/.match i }
22
- targets += (Dir.entries dir).select { |i| /gemspec/.match i }
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/i.match i }[0]
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.match words
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 = (Dir.entries dir).select { |i| /gemspec/.match i }[0]
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].split('=')[-1].strip[1..-2]
48
- params[:license] = (gs.grep /\.license /)[0].split('=')[-1].strip[1..-2]
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
@@ -4,18 +4,19 @@ module Badger
4
4
  type = type.downcase
5
5
  return nil unless params = Config.instance.licenses[type]
6
6
 
7
- url = params['url']
8
- if /%s/.match url
9
- url = url % owner
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
- "[![License](http://%s/:license-%s-blue.svg)](%s)" % [
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
- url
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
@@ -1,11 +1,16 @@
1
1
  module Badger
2
2
  class Rubygem
3
3
  def self.badge name
4
- "[![Gem Version](http://%s/gem/v/%s.svg)](https://rubygems.org/gems/%s)" % [
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
@@ -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
- "[![%s](http://%s/%s/%s.svg)](https://%s/%s)" % [
8
- params['alt_text'],
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
@@ -1,3 +1,3 @@
1
1
  module Badger
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.1"
3
3
  end
data/spec/badger_spec.rb CHANGED
@@ -60,6 +60,13 @@ module Badger
60
60
  @badger[0].should == "[![License](http://img.shields.io/:license-gpl3-blue.svg)](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 == "[![License](http://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org)"
67
+ @badger[1].should == "[![License](http://img.shields.io/:license-apache-blue.svg)](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.5.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-30 00:00:00.000000000 Z
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