badgerbadgerbadger 0.1.0 → 0.2.0
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/Guardfile +23 -1
- data/README.md +2 -2
- data/RUBYGEMBADGE +1 -0
- data/badger.gemspec +1 -1
- data/config/services.yaml +3 -1
- data/features/badger.feature +30 -1
- data/features/support/hooks.rb +14 -1
- data/lib/badger/badger.rb +35 -7
- data/lib/badger/cli.rb +14 -4
- data/lib/badger/version.rb +1 -1
- data/spec/badger_spec.rb +12 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65a87ea77e70e97c202ea2196a2d5345b7746d56
|
4
|
+
data.tar.gz: 6280794d0a4b77741f82a38638092eb9b4e5bebd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a398072936efa98fa4178b124fc6724e59483e2567c210970c370c9a025726bbb2e858ef4fc5c926b0d3640425387e5fbb6b4b495dadd759baced3d69b55b99
|
7
|
+
data.tar.gz: 7505edaea08d66fb098984a8ccc719cbec234587556fdd3c8df7f6327f04898665d3ece421d6f8602c820bd2d8c4db8d04bbf04176628bc58ed39b8fb7eef9a9
|
data/Guardfile
CHANGED
@@ -1,8 +1,30 @@
|
|
1
1
|
# A sample Guardfile
|
2
2
|
# More info at https://github.com/guard/guard#readme
|
3
3
|
|
4
|
-
guard
|
4
|
+
guard :cucumber do #, :cli => '--format pretty' do
|
5
5
|
watch(%r{^features/.+\.feature$})
|
6
6
|
watch(%r{^features/support/.+$}) { 'features' }
|
7
7
|
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
8
8
|
end
|
9
|
+
|
10
|
+
guard :rspec do
|
11
|
+
watch(%r{^spec/.+_spec\.rb$})
|
12
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
13
|
+
watch('spec/spec_helper.rb') { "spec" }
|
14
|
+
|
15
|
+
# Rails example
|
16
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
17
|
+
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
18
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
19
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
20
|
+
watch('config/routes.rb') { "spec/routing" }
|
21
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
22
|
+
|
23
|
+
# Capybara features specs
|
24
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
25
|
+
|
26
|
+
# Turnip features and steps
|
27
|
+
watch(%r{^spec/acceptance/(.+)\.feature$})
|
28
|
+
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
29
|
+
end
|
30
|
+
|
data/README.md
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
[](https://coveralls.io/r/pikesley/badger)
|
3
3
|
[](https://gemnasium.com/pikesley/badger)
|
4
4
|
[](https://codeclimate.com/github/pikesley/badger)
|
5
|
+
[](https://rubygems.org/gems/badgerbadgerbadger)
|
5
6
|
[](http://pikesley.mit-license.org)
|
6
7
|
|
7
|
-
|
8
8
|
#Badger
|
9
9
|
|
10
10
|
Because I grow weary of copy-n-pasting the badge URLs into the README of every project, and the [b.adge.me](http://b.adge.me) API now supports all of the services I use
|
@@ -13,7 +13,7 @@ Because I grow weary of copy-n-pasting the badge URLs into the README of every p
|
|
13
13
|
|
14
14
|
Add it to your Gemfile
|
15
15
|
|
16
|
-
gem 'badgerbadgerbadger'
|
16
|
+
gem 'badgerbadgerbadger'
|
17
17
|
bundle
|
18
18
|
|
19
19
|
Then
|
data/RUBYGEMBADGE
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
http://b.adge.me/gem/v/badgerbadgerbadger.svg
|
data/badger.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ['pikesley']
|
10
10
|
spec.email = ['sam@pikesley.org']
|
11
11
|
spec.description = %q{Generate Github project badges}
|
12
|
-
spec.summary = %q{Generate Github project
|
12
|
+
spec.summary = %q{Badge-Driven Development made easy. Generate a set of Github badges for your project without cutting-n-pasting every time}
|
13
13
|
spec.homepage = 'https://github.com/pikesley/badger'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
spec.files = `git ls-files`.split($/)
|
data/config/services.yaml
CHANGED
data/features/badger.feature
CHANGED
@@ -12,6 +12,14 @@ Feature: Badge Robot
|
|
12
12
|
[](https://gemnasium.com/doge/wow)
|
13
13
|
[](https://codeclimate.com/github/doge/wow)
|
14
14
|
"""
|
15
|
+
And the output should not contain:
|
16
|
+
"""
|
17
|
+
](http://doge.mit-license.org)
|
18
|
+
"""
|
19
|
+
And the output should not contain:
|
20
|
+
"""
|
21
|
+
[](https://rubygems.org/gems/suchgem)
|
22
|
+
"""
|
15
23
|
|
16
24
|
Scenario: Generate only a subset of badges
|
17
25
|
When I successfully run `badger badge --not travis /tmp/wow_repo`
|
@@ -50,7 +58,6 @@ Feature: Badge Robot
|
|
50
58
|
[](https://codeclimate.com/github/doge/wow)
|
51
59
|
"""
|
52
60
|
|
53
|
-
@wip
|
54
61
|
Scenario: Generate additional badges
|
55
62
|
When I successfully run `badger badge --also mit /tmp/wow_repo`
|
56
63
|
Then the output should contain:
|
@@ -59,5 +66,27 @@ Feature: Badge Robot
|
|
59
66
|
[](https://coveralls.io/r/doge/wow)
|
60
67
|
[](https://gemnasium.com/doge/wow)
|
61
68
|
[](https://codeclimate.com/github/doge/wow)
|
69
|
+
[](http://doge.mit-license.org)
|
70
|
+
"""
|
71
|
+
|
72
|
+
@gemspec
|
73
|
+
Scenario: Generate badges based on gemspec
|
74
|
+
When I successfully run `badger badge /tmp/wow_repo`
|
75
|
+
Then the output should contain:
|
76
|
+
"""
|
77
|
+
[](https://travis-ci.org/doge/wow)
|
78
|
+
[](https://coveralls.io/r/doge/wow)
|
79
|
+
[](https://gemnasium.com/doge/wow)
|
80
|
+
[](https://codeclimate.com/github/doge/wow)
|
81
|
+
[](https://rubygems.org/gems/suchgem)
|
82
|
+
[](http://doge.mit-license.org)
|
83
|
+
"""
|
84
|
+
|
85
|
+
@gemspec
|
86
|
+
Scenario: gemspec and --also mit
|
87
|
+
Given I successfully run `badger badge --also mit /tmp/wow_repo`
|
88
|
+
Then the output should not contain:
|
89
|
+
"""
|
90
|
+
[](http://doge.mit-license.org)
|
62
91
|
[](http://doge.mit-license.org)
|
63
92
|
"""
|
data/features/support/hooks.rb
CHANGED
@@ -4,4 +4,17 @@ end
|
|
4
4
|
|
5
5
|
After do
|
6
6
|
FileUtils.remove_dir '/tmp/wow_repo', :force => true
|
7
|
-
end
|
7
|
+
end
|
8
|
+
|
9
|
+
Before '@gemspec' do
|
10
|
+
f = File.open('/tmp/wow_repo/suchgem.gemspec', 'w')
|
11
|
+
[
|
12
|
+
"spec.name 'suchgem'",
|
13
|
+
"spec.license 'MIT'"
|
14
|
+
].each do |line|
|
15
|
+
f.write line
|
16
|
+
f.write "\n"
|
17
|
+
end
|
18
|
+
f.close
|
19
|
+
end
|
20
|
+
|
data/lib/badger/badger.rb
CHANGED
@@ -15,11 +15,13 @@ module Badger
|
|
15
15
|
'config/services.yaml'
|
16
16
|
)
|
17
17
|
)
|
18
|
-
)
|
18
|
+
)
|
19
|
+
|
20
|
+
@services = yaml['services']['defaults']
|
21
|
+
@extras = yaml['services']['extras']
|
22
|
+
@badge_service = yaml['badge_service']
|
23
|
+
@extra_badges = []
|
19
24
|
|
20
|
-
@services = yaml['defaults']
|
21
|
-
@extras = yaml['extras']
|
22
|
-
@extra_badges = []
|
23
25
|
end
|
24
26
|
|
25
27
|
def github_slug url
|
@@ -30,8 +32,9 @@ module Badger
|
|
30
32
|
s = []
|
31
33
|
@services.each_pair do |k, h|
|
32
34
|
unless @blacklist.include? k.to_s
|
33
|
-
s << "[](https://%s/%s)" % [
|
34
36
|
h['alt_text'],
|
37
|
+
@badge_service,
|
35
38
|
h['badge_slug'],
|
36
39
|
@github_slug,
|
37
40
|
h['url'],
|
@@ -41,7 +44,7 @@ module Badger
|
|
41
44
|
end
|
42
45
|
s += @extra_badges
|
43
46
|
|
44
|
-
s
|
47
|
+
s.uniq
|
45
48
|
end
|
46
49
|
|
47
50
|
def remove items
|
@@ -71,8 +74,9 @@ module Badger
|
|
71
74
|
|
72
75
|
owner = @github_slug.split('/')[0]
|
73
76
|
t = e['url'] % owner
|
74
|
-
s = "[](%s)" % [
|
75
78
|
e['alt_text'],
|
79
|
+
@badge_service,
|
76
80
|
e['badge_path'],
|
77
81
|
t
|
78
82
|
]
|
@@ -82,6 +86,30 @@ module Badger
|
|
82
86
|
end
|
83
87
|
end
|
84
88
|
|
89
|
+
def gemspec lines
|
90
|
+
rg = ''
|
91
|
+
rubygem = (lines.select { |l| /\.name\s/.match l })[0].split(/\s/)[-1][1..-2]
|
92
|
+
rg << "[](https://rubygems.org/gems/%s)" % [
|
93
|
+
@badge_service,
|
94
|
+
rubygem,
|
95
|
+
rubygem
|
96
|
+
]
|
97
|
+
|
98
|
+
@extra_badges << rg
|
99
|
+
|
100
|
+
lc = ''
|
101
|
+
owner = @github_slug.split('/')[0]
|
102
|
+
license = (lines.select { |l| /license/.match l })[0].split(/\s/)[-1]
|
103
|
+
if /MIT/i.match license
|
104
|
+
lc << "[](http://%s.mit-license.org)" % [
|
105
|
+
@badge_service,
|
106
|
+
owner
|
107
|
+
]
|
108
|
+
|
109
|
+
@extra_badges << lc
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
85
113
|
def to_s
|
86
114
|
badge.each do |b|
|
87
115
|
b
|
data/lib/badger/cli.rb
CHANGED
@@ -5,7 +5,7 @@ module Badger
|
|
5
5
|
class CLI < Thor
|
6
6
|
desc 'badge', 'Generate badge markdown'
|
7
7
|
long_desc <<-LONGDESC
|
8
|
-
Generates badges for Github READMEs. The default services are
|
8
|
+
Generates badges for Github READMEs. The default services are:
|
9
9
|
|
10
10
|
* Travis-ci
|
11
11
|
|
@@ -20,20 +20,30 @@ Extra badges: currently only one extra badge is supported, a link to the MIT lic
|
|
20
20
|
[](http://doge.mit-license.org)
|
21
21
|
|
22
22
|
|
23
|
+
If a gemspec is found, the following badges will also be generated:
|
24
|
+
|
25
|
+
* [License: MIT] badge (presuming an MIT license is specified, linked as above)
|
26
|
+
|
27
|
+
* [Gem version] badge, linking to rubygems.org
|
28
|
+
|
23
29
|
LONGDESC
|
24
30
|
option :not, desc: 'Exclude these services (comma-separated list)'
|
25
31
|
option :only, desc: 'Generate for *only* these services (comma-separated list)'
|
26
32
|
option :also, desc: 'Include this extra service (currently only \'mit\')'
|
27
33
|
|
28
34
|
def badge dir = '.'
|
29
|
-
f = File.open '/tmp/wtf', 'w'
|
30
|
-
f.write options
|
31
|
-
|
32
35
|
@badger = Badger.new Git.open(dir).remote.url
|
33
36
|
@badger.remove options[:not].split(',') if options[:not]
|
34
37
|
@badger.only options[:only].split(',') if options[:only]
|
35
38
|
@badger.also options[:also].split(',') if options[:also]
|
36
39
|
|
40
|
+
spec_file = (Dir.entries dir).select { |i| /gemspec/.match i }[0]
|
41
|
+
|
42
|
+
if spec_file
|
43
|
+
lines = File.open(File.join(dir, spec_file), 'r').readlines
|
44
|
+
@badger.gemspec lines
|
45
|
+
end
|
46
|
+
|
37
47
|
puts @badger.to_s
|
38
48
|
end
|
39
49
|
|
data/lib/badger/version.rb
CHANGED
data/spec/badger_spec.rb
CHANGED
@@ -59,5 +59,16 @@ module Badger
|
|
59
59
|
@badger.badge[4].should == "[](http://doge.mit-license.org)"
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
context 'gemspec' do
|
64
|
+
it 'should generate badges based on gemspec' do
|
65
|
+
@badger.gemspec [
|
66
|
+
"spec.name 'suchgem'",
|
67
|
+
"spec.license 'MIT'"
|
68
|
+
]
|
69
|
+
@badger.badge[4].should == "[](https://rubygems.org/gems/suchgem)"
|
70
|
+
@badger.badge[5].should == "[](http://doge.mit-license.org)"
|
71
|
+
end
|
72
|
+
end
|
62
73
|
end
|
63
|
-
end
|
74
|
+
end
|
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.2.0
|
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-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- Guardfile
|
222
222
|
- LICENSE.md
|
223
223
|
- README.md
|
224
|
+
- RUBYGEMBADGE
|
224
225
|
- Rakefile
|
225
226
|
- badger.gemspec
|
226
227
|
- bin/badger
|
@@ -259,7 +260,8 @@ rubyforge_project:
|
|
259
260
|
rubygems_version: 2.2.0.rc.1
|
260
261
|
signing_key:
|
261
262
|
specification_version: 4
|
262
|
-
summary: Generate Github
|
263
|
+
summary: Badge-Driven Development made easy. Generate a set of Github badges for your
|
264
|
+
project without cutting-n-pasting every time
|
263
265
|
test_files:
|
264
266
|
- features/badger.feature
|
265
267
|
- features/step_definitions/badger_steps.rb
|