prawn-svg 0.16.2 → 0.17.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/lib/prawn/svg/parser.rb +15 -7
- data/lib/prawn/svg/version.rb +1 -1
- data/prawn-svg.gemspec +1 -0
- data/spec/sample_svg/gistfile1.svg +36 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84d18077060035c9ff8e187e66224d5f8096442f
|
4
|
+
data.tar.gz: 5f5dfebe80da4952bb7abf990dae113ab6964f5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 138d046a81065b80ac7ee63d249d4874deae0e4bfeb18630b2ff117ee93392823cb675b1fc21372f16a199c0efc7ae68f45e3236c0c8559c33c07423a7a31e8d
|
7
|
+
data.tar.gz: 477eb736af2b1b0f4cbd1789d1afb5e0807cac8a5d578790c99d5aaa75787c2413ebb571920e42b4004261401163684e82dd34be1c31af6a4434d85ec573c8b0
|
data/lib/prawn/svg/parser.rb
CHANGED
@@ -105,19 +105,17 @@ class Prawn::Svg::Parser
|
|
105
105
|
element.add_call 'line', x(attrs['x1'] || '0'), y(attrs['y1'] || '0'), x(attrs['x2'] || '0'), y(attrs['y2'] || '0')
|
106
106
|
|
107
107
|
when 'polyline'
|
108
|
-
points = attrs['points']
|
109
|
-
return unless
|
110
|
-
x, y =
|
108
|
+
points = parse_points(attrs['points'])
|
109
|
+
return unless points.length > 0
|
110
|
+
x, y = points.shift
|
111
111
|
element.add_call 'move_to', x(x), y(y)
|
112
112
|
element.add_call_and_enter 'stroke'
|
113
|
-
points.each do |
|
114
|
-
x, y = point.split(",")
|
113
|
+
points.each do |x, y|
|
115
114
|
element.add_call "line_to", x(x), y(y)
|
116
115
|
end
|
117
116
|
|
118
117
|
when 'polygon'
|
119
|
-
points = attrs['points']
|
120
|
-
x, y = point.split(",")
|
118
|
+
points = parse_points(attrs['points']).collect do |x, y|
|
121
119
|
[x(x), y(y)]
|
122
120
|
end
|
123
121
|
element.add_call "polygon", *points
|
@@ -256,4 +254,14 @@ class Prawn::Svg::Parser
|
|
256
254
|
%w(x y distance).each do |method|
|
257
255
|
define_method(method) {|*a| @document.send(method, *a)}
|
258
256
|
end
|
257
|
+
|
258
|
+
def parse_points(points_string)
|
259
|
+
points_string.
|
260
|
+
to_s.
|
261
|
+
strip.
|
262
|
+
gsub(/(\d)-(\d)/, '\1 -\2').
|
263
|
+
split(/(?:\s+,?\s*|,\s*)/).
|
264
|
+
each_slice(2).
|
265
|
+
to_a
|
266
|
+
end
|
259
267
|
end
|
data/lib/prawn/svg/version.rb
CHANGED
data/prawn-svg.gemspec
CHANGED
@@ -19,6 +19,7 @@ spec = Gem::Specification.new do |gem|
|
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
21
|
gem.add_runtime_dependency "prawn", ">= 0.8.4", "< 3"
|
22
|
+
gem.add_runtime_dependency "css_parser", "~> 1.3"
|
22
23
|
gem.add_development_dependency "rspec", "~> 2.14"
|
23
24
|
gem.add_development_dependency "rake", "~> 10.1"
|
24
25
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="205pt" style="width:362px;height:205px;" version="1.1" viewBox="0 0 362 205" width="362pt">
|
3
|
+
<g>
|
4
|
+
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="146" x2="146" y1="35.4883" y2="204.041"/>
|
5
|
+
<line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="204" x2="204" y1="35.4883" y2="204.041"/>
|
6
|
+
<rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="47" x="121" y="0"/>
|
7
|
+
<text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="33" x="128" y="20.5352">Alice</text>
|
8
|
+
<rect fill="#FEFECE" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="40" x="182" y="0"/>
|
9
|
+
<text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="26" x="189" y="20.5352">Bob</text>
|
10
|
+
<polygon fill="#A80036" points="192,67.4883,202,71.4883,192,75.4883,196,71.4883" style="stroke: #A80036; stroke-width: 1.0;"/>
|
11
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="146.5" x2="198" y1="71.4883" y2="71.4883"/>
|
12
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="31" x="153.5" y="67.0566">hello</text>
|
13
|
+
<polygon fill="#FBFB77" points="5,50.4883,5,75.4883,138,75.4883,138,60.4883,128,50.4883,5,50.4883" style="stroke: #A80036; stroke-width: 1.0;"/>
|
14
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="128" x2="128" y1="50.4883" y2="60.4883"/>
|
15
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="128" y1="60.4883" y2="60.4883"/>
|
16
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="11" y="68.0566">this is a first note</text>
|
17
|
+
<polygon fill="#A80036" points="157.5,106.7988,147.5,110.7988,157.5,114.7988,153.5,110.7988" style="stroke: #A80036; stroke-width: 1.0;"/>
|
18
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="151.5" x2="203" y1="110.7988" y2="110.7988"/>
|
19
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="16" x="163.5" y="106.3672">ok</text>
|
20
|
+
<polygon fill="#FBFB77" points="209,89.7988,209,114.7988,353,114.7988,353,99.7988,343,89.7988,209,89.7988" style="stroke: #A80036; stroke-width: 1.0;"/>
|
21
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="343" x2="343" y1="89.7988" y2="99.7988"/>
|
22
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="353" x2="343" y1="99.7988" y2="99.7988"/>
|
23
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="123" x="215" y="107.3672">this is another note</text>
|
24
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="204" x2="246" y1="159.2305" y2="159.2305"/>
|
25
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="246" x2="246" y1="159.2305" y2="172.2305"/>
|
26
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="205" x2="246" y1="172.2305" y2="172.2305"/>
|
27
|
+
<polygon fill="#A80036" points="215,168.2305,205,172.2305,215,176.2305,211,172.2305" style="stroke: #A80036; stroke-width: 1.0;"/>
|
28
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="84" x="211" y="154.4883">I am thinking</text>
|
29
|
+
<polygon fill="#FBFB77" points="52,129.1094,52,184.1094,195,184.1094,195,139.1094,185,129.1094,52,129.1094" style="stroke: #A80036; stroke-width: 1.0;"/>
|
30
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="185" x2="185" y1="129.1094" y2="139.1094"/>
|
31
|
+
<line style="stroke: #A80036; stroke-width: 1.0;" x1="195" x2="185" y1="139.1094" y2="139.1094"/>
|
32
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="39" x="58" y="146.6777">a note</text>
|
33
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="122" x="58" y="161.9883">can also be defined</text>
|
34
|
+
<text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="58" y="177.2988">on several lines</text>
|
35
|
+
</g>
|
36
|
+
</svg>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prawn-svg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Nesbitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|
@@ -30,6 +30,20 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: css_parser
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.3'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.3'
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: rspec
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,6 +126,7 @@ files:
|
|
112
126
|
- spec/sample_svg/cubic02.svg
|
113
127
|
- spec/sample_svg/display_none.svg
|
114
128
|
- spec/sample_svg/ellipse01.svg
|
129
|
+
- spec/sample_svg/gistfile1.svg
|
115
130
|
- spec/sample_svg/google_charts.svg
|
116
131
|
- spec/sample_svg/hidden_paths.svg
|
117
132
|
- spec/sample_svg/highcharts.svg
|
@@ -192,6 +207,7 @@ test_files:
|
|
192
207
|
- spec/sample_svg/cubic02.svg
|
193
208
|
- spec/sample_svg/display_none.svg
|
194
209
|
- spec/sample_svg/ellipse01.svg
|
210
|
+
- spec/sample_svg/gistfile1.svg
|
195
211
|
- spec/sample_svg/google_charts.svg
|
196
212
|
- spec/sample_svg/hidden_paths.svg
|
197
213
|
- spec/sample_svg/highcharts.svg
|