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 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