badges2svg 0.1.0 → 0.1.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/bin/badges2svg +12 -4
- data/lib/badges2svg.rb +14 -7
- data/tests/tests.rb +52 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28a67d37ccc465a931a6ec0c49e13a2415496abc
|
4
|
+
data.tar.gz: da121e220315080aff3d776924e87917dfbbbb5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b11570dce2060acddeda8aa444082ee77dad05e80a6416741993ce757c87e7693ba9574ef0015d991956dc2685feaa0708ccc0f808ed97dce87182f7ab51cab
|
7
|
+
data.tar.gz: 7e5f27704e9ed76eae4738652556fbb85053c57f0d7a40b95fa8055158ddce3189a35d660e4775be2b2c15af4fd43d9cd87f8d382d591cc1735884c43a7ad480
|
data/bin/badges2svg
CHANGED
@@ -7,11 +7,16 @@ require 'badges2svg'
|
|
7
7
|
opts = Trollop.options do
|
8
8
|
version "badges2svg #{BadgesToSVG.version}"
|
9
9
|
banner <<-EOS
|
10
|
-
badges2svg is a tool to replace your PNG GitHub badges
|
10
|
+
badges2svg is a tool to replace your PNG GitHub badges with resolution-independant SVG ones.
|
11
11
|
|
12
12
|
Usage:
|
13
|
-
badges2svg <file>
|
13
|
+
badges2svg [options] <file>
|
14
|
+
|
15
|
+
where [options] are:
|
14
16
|
EOS
|
17
|
+
|
18
|
+
opt :https, 'use HTTPS in URLs', :default => true, :short => '-H'
|
19
|
+
|
15
20
|
end
|
16
21
|
|
17
22
|
if ARGV.empty?
|
@@ -19,8 +24,11 @@ if ARGV.empty?
|
|
19
24
|
exit 1
|
20
25
|
end
|
21
26
|
|
22
|
-
|
27
|
+
if ARGV[0] == '-'
|
28
|
+
print BadgesToSVG.replace(STDIN.read, opts)
|
29
|
+
exit 0
|
30
|
+
end
|
23
31
|
|
24
32
|
File.open(ARGV[0], 'w') do |f|
|
25
|
-
f.write(BadgesToSVG.replace(content))
|
33
|
+
f.write(BadgesToSVG.replace(content, opts))
|
26
34
|
end
|
data/lib/badges2svg.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
module BadgesToSVG
|
2
|
-
class << self
|
3
2
|
|
4
|
-
|
3
|
+
@protocol = 'https'
|
4
|
+
@domain = 'img.shields.io'
|
5
|
+
|
6
|
+
class << self
|
5
7
|
|
6
8
|
# see http://shields.io/
|
7
9
|
RULES = [
|
@@ -82,7 +84,11 @@ module BadgesToSVG
|
|
82
84
|
]
|
83
85
|
|
84
86
|
def version
|
85
|
-
'0.1.
|
87
|
+
'0.1.1'
|
88
|
+
end
|
89
|
+
|
90
|
+
def root_url(opts={})
|
91
|
+
"#{opts[:protocol] || @protocol}://#{opts[:domain] || @domain}"
|
86
92
|
end
|
87
93
|
|
88
94
|
def compile_pattern(pat, *a)
|
@@ -90,11 +96,12 @@ module BadgesToSVG
|
|
90
96
|
Regexp.new ("\\b#{pat.gsub(/%\{(\w+)\}/, "(?<\\1>.+?)")}\\b")
|
91
97
|
end
|
92
98
|
|
93
|
-
def replace
|
94
|
-
|
99
|
+
def replace content, opts={}
|
100
|
+
root = root_url(opts)
|
95
101
|
RULES.each do |r|
|
96
|
-
|
97
|
-
|
102
|
+
pat = compile_pattern(r[:pattern])
|
103
|
+
repl = root + r[:string].gsub(/%\{(\w+)\}/, "\\\\k<\\1>")
|
104
|
+
content.gsub!(pat, repl)
|
98
105
|
end
|
99
106
|
|
100
107
|
content
|
data/tests/tests.rb
CHANGED
@@ -48,8 +48,35 @@ class BadgesToSVGTests < Test::Unit::TestCase
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_compile_pattern_with_multiple_field_names
|
51
|
-
assert_equal(/\b(?<a>.+?)\/(?<b>.+?)\b
|
52
|
-
BadgesToSVG.compile_pattern("%{a}/%{b}"))
|
51
|
+
assert_equal(/\b(?<a>.+?)\/(?<b>.+?)\b/.to_s,
|
52
|
+
BadgesToSVG.compile_pattern("%{a}/%{b}").to_s)
|
53
|
+
end
|
54
|
+
|
55
|
+
# == BadgesToSVG#root_url == #
|
56
|
+
|
57
|
+
def test_root_url_default
|
58
|
+
assert_equal("https://img.shields.io", BadgesToSVG.root_url)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_root_url_custom_protocol
|
62
|
+
assert_equal("foobar://img.shields.io",
|
63
|
+
BadgesToSVG.root_url(:protocol => 'foobar'))
|
64
|
+
assert_equal("http://img.shields.io",
|
65
|
+
BadgesToSVG.root_url(:protocol => 'http'))
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_root_url_custom_protocol_symbol
|
69
|
+
assert_equal("foobar://img.shields.io",
|
70
|
+
BadgesToSVG.root_url(:protocol => :foobar))
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_root_url_custom_domain
|
74
|
+
assert_equal("https://bar", BadgesToSVG.root_url(:domain => 'bar'))
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_root_url_custom_protocol_and_domain
|
78
|
+
s = "foo://bar"
|
79
|
+
assert_equal(s, BadgesToSVG.root_url(:protocol => 'foo', :domain => 'bar'))
|
53
80
|
end
|
54
81
|
|
55
82
|
# == BadgesToSVG#replace == #
|
@@ -239,6 +266,29 @@ class BadgesToSVGTests < Test::Unit::TestCase
|
|
239
266
|
assert_equal(ct2, BadgesToSVG.replace(ct1))
|
240
267
|
end
|
241
268
|
|
269
|
+
## with options
|
270
|
+
|
271
|
+
### custom protocol
|
272
|
+
|
273
|
+
def test_replace_with_custom_protocol
|
274
|
+
ct1 = ''
|
275
|
+
ct2 = ''
|
276
|
+
assert_equal(ct2, BadgesToSVG.replace(ct1, :protocol => :foo))
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_replace_with_custom_domain
|
280
|
+
ct1 = ''
|
281
|
+
ct2 = ''
|
282
|
+
assert_equal(ct2, BadgesToSVG.replace(ct1, :domain => 'foobar.io'))
|
283
|
+
end
|
284
|
+
|
285
|
+
def test_replace_with_custom_protocol_domain
|
286
|
+
ct1 = ''
|
287
|
+
ct2 = ''
|
288
|
+
assert_equal(ct2, BadgesToSVG.replace(ct1, :protocol => :http,
|
289
|
+
:domain => 'foobar.io'))
|
290
|
+
end
|
291
|
+
|
242
292
|
end
|
243
293
|
|
244
294
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: badges2svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Baptiste Fontaine
|
@@ -87,9 +87,9 @@ executables:
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
-
- bin/badges2svg
|
91
90
|
- lib/badges2svg.rb
|
92
91
|
- tests/tests.rb
|
92
|
+
- bin/badges2svg
|
93
93
|
homepage: https://github.com/bfontaine/badges2svg
|
94
94
|
licenses:
|
95
95
|
- MIT
|
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.
|
113
|
+
rubygems_version: 2.0.3
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: Replace GitHub PNG badges into SVG ones
|