text2svg 0.3.6 → 0.4.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/.travis.yml +1 -1
- data/Rakefile +1 -1
- data/lib/text2svg/cli.rb +6 -8
- data/lib/text2svg/option.rb +15 -1
- data/lib/text2svg/typography.rb +5 -1
- data/lib/text2svg/typography_test.rb +24 -20
- data/lib/text2svg/version.rb +1 -1
- 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: 9bfacdff9cb34a8770ff99e984013f4ff9a4f837
|
4
|
+
data.tar.gz: 0909e9114da286c14ec1bb577c7ac2c858902ddd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa3d335335590c1c9a76cdd12a2bdd758e14651c76eb5b42c5f8fe064789a3ad5a3daee73e76ae7ff00ee507b496be9639cf9b08ae53e5954b36fb1af02d0879
|
7
|
+
data.tar.gz: 137eb22ad7a9be9a9f742d3158d69f78dda6f7bf844bdb38add81e32aff7a4037be6d25ce2e3de7d52d26b696f6057398127d1031dd67d7c3429b323939bfeb2
|
data/.travis.yml
CHANGED
data/Rakefile
CHANGED
data/lib/text2svg/cli.rb
CHANGED
@@ -5,14 +5,9 @@ require 'text2svg/option'
|
|
5
5
|
module Text2svg
|
6
6
|
module CLI
|
7
7
|
def start
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
Encoding::UTF_8, # encoding
|
12
|
-
false, # bold
|
13
|
-
false, # italic
|
14
|
-
nil, # attribute
|
15
|
-
)
|
8
|
+
# defaults
|
9
|
+
o = Option.default
|
10
|
+
|
16
11
|
OptionParser.new.tap { |opt|
|
17
12
|
opt.on('-f', '--font FONT', 'font file path (require)') do |arg|
|
18
13
|
o.font = arg
|
@@ -32,6 +27,9 @@ module Text2svg
|
|
32
27
|
opt.on('--attribute STRING', 'decorate options (default nil)(e.g. fill="red" stroke-width="100")') do |arg|
|
33
28
|
o.attribute = arg
|
34
29
|
end
|
30
|
+
opt.on('--char-size WCHAR,HCHAR,HDPI,VDPI', 'char size set (default "0,0,3000,3000")') do |arg|
|
31
|
+
o.char_size = arg
|
32
|
+
end
|
35
33
|
}.parse!(ARGV)
|
36
34
|
unless o.font
|
37
35
|
raise ArgumentError, 'require `--font` cli option. see --help'
|
data/lib/text2svg/option.rb
CHANGED
@@ -6,16 +6,30 @@ module Text2svg
|
|
6
6
|
:bold,
|
7
7
|
:italic,
|
8
8
|
:attribute,
|
9
|
+
:char_size,
|
9
10
|
)
|
11
|
+
DEFAULTS = [
|
12
|
+
nil, # font
|
13
|
+
:left, # text_align
|
14
|
+
Encoding::UTF_8, # encoding
|
15
|
+
false, # bold
|
16
|
+
false, # italic
|
17
|
+
nil, # attribute
|
18
|
+
"0,0,3000,3000", # char_size
|
19
|
+
]
|
10
20
|
|
11
21
|
class << self
|
12
22
|
def from_hash(h)
|
13
|
-
o = new
|
23
|
+
o = new(*DEFAULTS)
|
14
24
|
h.to_h.each do |k, v|
|
15
25
|
o[k.to_sym] = v
|
16
26
|
end
|
17
27
|
o
|
18
28
|
end
|
29
|
+
|
30
|
+
def default
|
31
|
+
new(*DEFAULTS)
|
32
|
+
end
|
19
33
|
end
|
20
34
|
end
|
21
35
|
end
|
data/lib/text2svg/typography.rb
CHANGED
@@ -41,8 +41,12 @@ module Text2svg
|
|
41
41
|
unless option.font
|
42
42
|
raise OptionError, 'should set `font\' option'
|
43
43
|
end
|
44
|
+
char_sizes = option.char_size.split(',').map(&:to_i)
|
45
|
+
unless char_sizes.length == 4
|
46
|
+
raise OptionError, 'char-size option should be four integer values'
|
47
|
+
end
|
44
48
|
FreeType::API::Font.open(File.expand_path(option.font)) do |f|
|
45
|
-
f.set_char_size(
|
49
|
+
f.set_char_size(*char_sizes)
|
46
50
|
|
47
51
|
lines = []
|
48
52
|
line = []
|
@@ -20,28 +20,31 @@ module Text2svgTypographyTest
|
|
20
20
|
[nil, 'fill="red"'].each do |attribute|
|
21
21
|
[false, true].each do |bold|
|
22
22
|
[false, true].each do |italic|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
["0,0,0,0", "128,128,100,100"].each do |char_size|
|
24
|
+
opt = Text2svg::Option.default
|
25
|
+
opt.font = font
|
26
|
+
opt.text_align = text_align
|
27
|
+
opt.encoding = encoding
|
28
|
+
opt.attribute = attribute
|
29
|
+
opt.bold = bold
|
30
|
+
opt.italic = italic
|
31
|
+
opt.char_size = char_size
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
['ABC', "\n", "\n\nA", "", "A\nB\n\n", "A\n\n\nC", "<", ">", "&", "=", "@", "%", "#", "("].each do |text|
|
34
|
+
begin
|
35
|
+
c = Text2svg::Typography.build(text, opt)
|
36
|
+
rescue => e
|
37
|
+
t.log("raise error #{e.class}: #{e.message} with text=\"#{text}\",opt=#{opt}")
|
38
|
+
raise
|
39
|
+
end
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
unless Text2svg::Content === c
|
42
|
+
t.error('return value was break')
|
43
|
+
end
|
42
44
|
|
43
|
-
|
44
|
-
|
45
|
+
unless c.data.encoding == Encoding::UTF_8
|
46
|
+
t.error('encoding was changed')
|
47
|
+
end
|
45
48
|
end
|
46
49
|
end
|
47
50
|
end
|
@@ -61,7 +64,8 @@ module Text2svgTypographyTest
|
|
61
64
|
|
62
65
|
def benchmark_build(b)
|
63
66
|
str = [*'!'..'z'].join
|
64
|
-
opt = Text2svg::Option.
|
67
|
+
opt = Text2svg::Option.default
|
68
|
+
opt.font = 'data/sporq.ttf'
|
65
69
|
b.reset_timer
|
66
70
|
i = 0
|
67
71
|
while i < b.n
|
data/lib/text2svg/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: text2svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: freetype
|
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.2.5
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: Build svg path data from font file
|