prawn-svg 0.29.1 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +18 -0
  3. data/LICENSE +1 -1
  4. data/README.md +10 -9
  5. data/lib/prawn/svg/attributes/opacity.rb +4 -4
  6. data/lib/prawn/svg/attributes/transform.rb +2 -44
  7. data/lib/prawn/svg/elements/base.rb +11 -5
  8. data/lib/prawn/svg/elements/call_duplicator.rb +1 -1
  9. data/lib/prawn/svg/elements/gradient.rb +83 -25
  10. data/lib/prawn/svg/elements/image.rb +2 -2
  11. data/lib/prawn/svg/elements/path.rb +42 -29
  12. data/lib/prawn/svg/elements/root.rb +4 -1
  13. data/lib/prawn/svg/elements/text_component.rb +21 -5
  14. data/lib/prawn/svg/elements/use.rb +23 -7
  15. data/lib/prawn/svg/elements.rb +2 -0
  16. data/lib/prawn/svg/extensions/additional_gradient_transforms.rb +23 -0
  17. data/lib/prawn/svg/interface.rb +38 -8
  18. data/lib/prawn/svg/loaders/data.rb +1 -1
  19. data/lib/prawn/svg/loaders/file.rb +3 -1
  20. data/lib/prawn/svg/properties.rb +1 -0
  21. data/lib/prawn/svg/transform_parser.rb +72 -0
  22. data/lib/prawn/svg/version.rb +1 -1
  23. data/lib/prawn-svg.rb +4 -0
  24. data/prawn-svg.gemspec +3 -2
  25. data/spec/integration_spec.rb +24 -24
  26. data/spec/prawn/svg/attributes/opacity_spec.rb +85 -0
  27. data/spec/prawn/svg/attributes/transform_spec.rb +30 -35
  28. data/spec/prawn/svg/css/stylesheets_spec.rb +1 -19
  29. data/spec/prawn/svg/elements/base_spec.rb +16 -16
  30. data/spec/prawn/svg/elements/gradient_spec.rb +79 -4
  31. data/spec/prawn/svg/elements/line_spec.rb +12 -12
  32. data/spec/prawn/svg/elements/marker_spec.rb +27 -27
  33. data/spec/prawn/svg/elements/path_spec.rb +29 -17
  34. data/spec/prawn/svg/elements/polygon_spec.rb +9 -9
  35. data/spec/prawn/svg/elements/polyline_spec.rb +7 -7
  36. data/spec/prawn/svg/elements/text_spec.rb +65 -50
  37. data/spec/prawn/svg/loaders/data_spec.rb +8 -0
  38. data/spec/prawn/svg/pathable_spec.rb +4 -4
  39. data/spec/prawn/svg/transform_parser_spec.rb +94 -0
  40. data/spec/sample_svg/double_opacity.svg +6 -0
  41. data/spec/sample_svg/gradient_transform.svg +19 -0
  42. data/spec/sample_svg/links.svg +18 -0
  43. data/spec/sample_svg/radgrad01-bounding.svg +26 -0
  44. data/spec/sample_svg/radgrad01.svg +26 -0
  45. data/spec/sample_svg/svg_fill.svg +5 -0
  46. data/spec/sample_svg/text-decoration.svg +4 -0
  47. data/spec/sample_svg/transform.svg +20 -0
  48. data/spec/sample_svg/use_disordered.svg +17 -0
  49. data/spec/spec_helper.rb +2 -2
  50. metadata +48 -10
  51. data/.travis.yml +0 -8
@@ -0,0 +1,94 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Prawn::SVG::TransformParser do
4
+ class Test
5
+ include Prawn::SVG::Calculators::Pixels
6
+ include Prawn::SVG::TransformParser
7
+
8
+ State = Struct.new(:viewport_sizing)
9
+ Properties = Struct.new(:numerical_font_size)
10
+ Document = Struct.new(:sizing)
11
+
12
+ def document
13
+ Document.new(_sizing)
14
+ end
15
+
16
+ def state
17
+ State.new(_sizing)
18
+ end
19
+
20
+ def computed_properties
21
+ Properties.new(14)
22
+ end
23
+
24
+ def _sizing
25
+ Prawn::SVG::Calculators::DocumentSizing.new([1000, 800])
26
+ end
27
+ end
28
+
29
+ subject { Test.new.parse_transform_attribute(transform) }
30
+
31
+ context "with no transform" do
32
+ let(:transform) { '' }
33
+ it { is_expected.to eq [1, 0, 0, 1, 0, 0] }
34
+ end
35
+
36
+ context "with translate" do
37
+ let(:transform) { 'translate(10 20)' }
38
+ it { is_expected.to eq [1, 0, 0, 1, 10, -20] }
39
+ end
40
+
41
+ context "with single argument translate" do
42
+ let(:transform) { 'translate(10)' }
43
+ it { is_expected.to eq [1, 0, 0, 1, 10, 0] }
44
+ end
45
+
46
+ context "with translateX" do
47
+ let(:transform) { 'translateX(10)' }
48
+ it { is_expected.to eq [1, 0, 0, 1, 10, 0] }
49
+ end
50
+
51
+ context "with translateY" do
52
+ let(:transform) { 'translateY(10)' }
53
+ it { is_expected.to eq [1, 0, 0, 1, 0, -10] }
54
+ end
55
+
56
+ let(:sin30) { Math.sin(30 * Math::PI / 180.0) }
57
+ let(:cos30) { Math.cos(30 * Math::PI / 180.0) }
58
+ let(:tan30) { Math.tan(30 * Math::PI / 180.0) }
59
+
60
+ context "with single argument rotate" do
61
+ let(:transform) { 'rotate(30)' }
62
+ it { is_expected.to eq [cos30, -sin30, sin30, cos30, 0, 0] }
63
+ end
64
+
65
+ context "with triple argument rotate" do
66
+ let(:transform) { 'rotate(30 100 200)' }
67
+ it { is_expected.to eq [cos30, -sin30, sin30, cos30, 113.39745962155611, 23.205080756887753] }
68
+ end
69
+
70
+ context "with scale" do
71
+ let(:transform) { 'scale(1.5)' }
72
+ it { is_expected.to eq [1.5, 0, 0, 1.5, 0, 0] }
73
+ end
74
+
75
+ context "with skewX" do
76
+ let(:transform) { 'skewX(30)' }
77
+ it { is_expected.to eq [1, 0, -tan30, 1, 0, 0] }
78
+ end
79
+
80
+ context "with skewY" do
81
+ let(:transform) { 'skewY(30)' }
82
+ it { is_expected.to eq [1, -tan30, 0, 1, 0, 0] }
83
+ end
84
+
85
+ context "with matrix" do
86
+ let(:transform) { 'matrix(1 2 3 4 5 6)' }
87
+ it { is_expected.to eq [1, -2, -3, 4, 5, -6] }
88
+ end
89
+
90
+ context "with multiple" do
91
+ let(:transform) { 'scale(2) translate(7) scale(3)' }
92
+ it { is_expected.to eq [6, 0, 0, 6, 14, 0] }
93
+ end
94
+ end
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="206.404" height="167.984" viewBox="0 0 54.611 44.446">
2
+ <g transform="translate(-27.725 -80.097)" stroke="#000" stroke-width=".5">
3
+ <ellipse cx="48.451" cy="103.356" rx="20.476" ry="19.462" fill="#52e0ff"/>
4
+ <ellipse cx="66.77" cy="102.32" rx="15.316" ry="21.973" fill="#ff6c52" style="opacity:.75; fill-opacity:1"/>
5
+ </g>
6
+ </svg>
@@ -0,0 +1,19 @@
1
+ <svg viewBox="0 0 420 200" xmlns="http://www.w3.org/2000/svg">
2
+ <linearGradient id="gradient1" gradientUnits="userSpaceOnUse"
3
+ x1="0" y1="0" x2="200" y2="200">
4
+ <stop offset="0%" stop-color="darkblue" />
5
+ <stop offset="50%" stop-color="skyblue" />
6
+ <stop offset="100%" stop-color="darkblue" />
7
+ </linearGradient>
8
+ <linearGradient id="gradient2" gradientUnits="userSpaceOnUse"
9
+ x1="0" y1="0" x2="200" y2="200"
10
+ xgradientTransform="skewX(45) translate(-100, 0)"
11
+ gradientTransform="matrix(0.5, 0, 0, 1, 0, 100)">
12
+ <stop offset="0%" stop-color="darkblue" />
13
+ <stop offset="50%" stop-color="skyblue" />
14
+ <stop offset="100%" stop-color="darkblue" />
15
+ </linearGradient>
16
+
17
+ <rect x="0" y="0" width="200" height="200" fill="url(#gradient1)" />
18
+ <rect x="0" y="0" width="200" height="200" fill="url(#gradient2)" transform="translate(220, 0)" />
19
+ </svg>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="1200" height="400" viewBox="0 0 600 200" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
4
+ <text fill="#000000" font-family="sans-serif" font-size="13" textLength="78" x="14" y="20">You can use</text>
5
+ <a target="_top" xlink:actuate="onRequest" xlink:href="http://plantuml.com/start" xlink:show="new" xlink:title="http://plantuml.com/start" xlink:type="simple">
6
+ <text fill="#0000FF" font-family="sans-serif" font-size="13" text-decoration="underline" textLength="87" x="96" y="20">links in notes</text>
7
+ <line style="stroke: #0000FF; stroke-width: 1.0;" x1="96" x2="183" y1="20" y2="20"/>
8
+ </a>
9
+
10
+ <g transform="translate(0 20)">
11
+ <text fill="#000000" font-family="sans-serif" font-size="13" textLength="78" lengthAdjust="spacingAndGlyphs" x="14" y="20">You can use</text>
12
+ <a target="_top" xlink:actuate="onRequest" xlink:href="http://plantuml.com/start" xlink:show="new" xlink:title="http://plantuml.com/start" xlink:type="simple">
13
+ <text fill="#0000FF" font-family="sans-serif" font-size="13" text-decoration="underline" textLength="87" lengthAdjust="spacingAndGlyphs" x="96" y="20">links in notes</text>
14
+ <line style="stroke: #0000FF; stroke-width: 1.0;" x1="96" x2="183" y1="20" y2="20"/>
15
+ </a>
16
+ </g>
17
+ </svg>
18
+
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg width="8cm" height="4cm" viewBox="0 0 800 400" version="1.1"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <desc>Example radgrad01 - fill a rectangle by referencing a
7
+ radial gradient paint server</desc>
8
+ <g>
9
+ <defs>
10
+ <radialGradient id="MyGradient"
11
+ cx="0.5" cy="0.5" r="0.2" fx="0.5" fy="0.5">
12
+ <stop offset="0%" stop-color="red" />
13
+ <stop offset="50%" stop-color="blue" />
14
+ <stop offset="100%" stop-color="red" />
15
+ </radialGradient>
16
+ </defs>
17
+
18
+ <!-- Outline the drawing area in blue -->
19
+ <rect fill="none" stroke="blue"
20
+ x="1" y="1" width="798" height="398"/>
21
+
22
+ <!-- The rectangle is filled using a radial gradient paint server -->
23
+ <rect fill="url(#MyGradient)" stroke="black" stroke-width="5"
24
+ x="100" y="100" width="600" height="200"/>
25
+ </g>
26
+ </svg>
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg width="8cm" height="4cm" viewBox="0 0 800 400" version="1.1"
5
+ xmlns="http://www.w3.org/2000/svg">
6
+ <desc>Example radgrad01 - fill a rectangle by referencing a
7
+ radial gradient paint server</desc>
8
+ <g>
9
+ <defs>
10
+ <radialGradient id="MyGradient" gradientUnits="userSpaceOnUse"
11
+ cx="400" cy="200" r="50%" fx="200" fy="200">
12
+ <stop offset="0%" stop-color="red" />
13
+ <stop offset="50%" stop-color="blue" />
14
+ <stop offset="100%" stop-color="red" />
15
+ </radialGradient>
16
+ </defs>
17
+
18
+ <!-- Outline the drawing area in blue -->
19
+ <rect fill="none" stroke="blue"
20
+ x="1" y="1" width="798" height="398"/>
21
+
22
+ <!-- The rectangle is filled using a radial gradient paint server -->
23
+ <rect fill="url(#MyGradient)" stroke="black" stroke-width="5"
24
+ x="100" y="100" width="600" height="200"/>
25
+ </g>
26
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="12cm" height="5.25cm" viewBox="0 0 1200 400" xmlns="http://www.w3.org/2000/svg" version="1.1" fill="red">
4
+ <text style="font-size: 40pt;">This is red text.</text>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg viewBox="0 0 250 50" xmlns="http://www.w3.org/2000/svg">
2
+ <text y="20" text-decoration="underline">Underlined text</text>
3
+ <text x="0" y="40" text-decoration="line-through">Struck-through text</text>
4
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg height="975" version="1.1" width="1275" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="0" y="0" width="200" height="100" fill="blue"/>
3
+ <rect x="0" y="0" width="200" height="100" fill="lightblue" transform="rotate(30 200 100) translate(200)"/>
4
+ <rect x="0" y="0" width="200" height="100" fill="lightblue" transform="rotate(-5) translate(400)"/>
5
+
6
+ <g transform="translate(0 200)">
7
+ <rect x="0" y="0" width="200" height="100" fill="green"/>
8
+ <rect x="0" y="0" width="200" height="100" fill="lightgreen" transform="skewX(35) translate(200)"/>
9
+ </g>
10
+
11
+ <g transform="translate(0 320)">
12
+ <rect x="0" y="0" width="200" height="100" fill="red"/>
13
+ <rect x="0" y="0" width="200" height="100" fill="pink" transform="skewY(5) translate(200)"/>
14
+ </g>
15
+
16
+ <g transform="translate(0 470)">
17
+ <rect x="0" y="0" width="200" height="100" fill="black"/>
18
+ <rect x="0" y="0" width="200" height="100" fill="grey" transform="translate(200) scale(1.5)"/>
19
+ </g>
20
+ </svg>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="12cm" height="4cm" viewBox="0 0 1200 400" xmlns="http://www.w3.org/2000/svg" xmlns:xlink='http://www.w3.org/1999/xlink' version="1.1">
4
+ <use xlink:href="#two-rects"/>
5
+ <use xlink:href="#two-rects" x="90" y="90"/>
6
+ <use xlink:href="#two-rects" x="180" y="180"/>
7
+
8
+ <use xlink:href="#circle" x="0" y="0" style="opacity: 0.5;" transform="scale(1.3)"/>
9
+ <use xlink:href="#circle" x="0" y="0" style="opacity: 0.2;" transform="scale(1.7)"/>
10
+
11
+ <circle id="circle" cx="600" cy="200" r="100" fill="red" stroke="blue" stroke-width="10" />
12
+
13
+ <symbol id="two-rects">
14
+ <rect x="1" y="1" width="1198" height="398" fill="none" stroke="blue" stroke-width="2"/>
15
+ <rect x="400" y="100" width="400" height="200" fill="yellow" stroke="navy" stroke-width="10" />
16
+ </symbol>
17
+ </svg>
data/spec/spec_helper.rb CHANGED
@@ -10,8 +10,8 @@ module Support
10
10
  [].tap do |flattened_calls|
11
11
  add = -> (local_calls) do
12
12
  local_calls.each do |call|
13
- flattened_calls << call[0..1]
14
- add.call call[2]
13
+ flattened_calls << call[0..2]
14
+ add.call call[3]
15
15
  end
16
16
  end
17
17
 
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.29.1
4
+ version: 0.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roger Nesbitt
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-06 00:00:00.000000000 Z
11
+ date: 2021-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prawn
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rexml
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.2'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: rspec
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -64,14 +78,14 @@ dependencies:
64
78
  requirements:
65
79
  - - "~>"
66
80
  - !ruby/object:Gem::Version
67
- version: '10.1'
81
+ version: '13.0'
68
82
  type: :development
69
83
  prerelease: false
70
84
  version_requirements: !ruby/object:Gem::Requirement
71
85
  requirements:
72
86
  - - "~>"
73
87
  - !ruby/object:Gem::Version
74
- version: '10.1'
88
+ version: '13.0'
75
89
  description: This gem allows you to render SVG directly into a PDF using the 'prawn'
76
90
  gem. Since PDF is vector-based, you'll get nice scaled graphics if you use SVG
77
91
  instead of an image.
@@ -80,9 +94,9 @@ executables: []
80
94
  extensions: []
81
95
  extra_rdoc_files: []
82
96
  files:
97
+ - ".github/workflows/test.yml"
83
98
  - ".gitignore"
84
99
  - ".rspec"
85
- - ".travis.yml"
86
100
  - Gemfile
87
101
  - LICENSE
88
102
  - README.md
@@ -126,6 +140,7 @@ files:
126
140
  - lib/prawn/svg/elements/use.rb
127
141
  - lib/prawn/svg/elements/viewport.rb
128
142
  - lib/prawn/svg/extension.rb
143
+ - lib/prawn/svg/extensions/additional_gradient_transforms.rb
129
144
  - lib/prawn/svg/font.rb
130
145
  - lib/prawn/svg/font_registry.rb
131
146
  - lib/prawn/svg/interface.rb
@@ -135,11 +150,13 @@ files:
135
150
  - lib/prawn/svg/pathable.rb
136
151
  - lib/prawn/svg/properties.rb
137
152
  - lib/prawn/svg/state.rb
153
+ - lib/prawn/svg/transform_parser.rb
138
154
  - lib/prawn/svg/ttf.rb
139
155
  - lib/prawn/svg/url_loader.rb
140
156
  - lib/prawn/svg/version.rb
141
157
  - prawn-svg.gemspec
142
158
  - spec/integration_spec.rb
159
+ - spec/prawn/svg/attributes/opacity_spec.rb
143
160
  - spec/prawn/svg/attributes/transform_spec.rb
144
161
  - spec/prawn/svg/calculators/aspect_ratio_spec.rb
145
162
  - spec/prawn/svg/calculators/document_sizing_spec.rb
@@ -165,6 +182,7 @@ files:
165
182
  - spec/prawn/svg/loaders/web_spec.rb
166
183
  - spec/prawn/svg/pathable_spec.rb
167
184
  - spec/prawn/svg/properties_spec.rb
185
+ - spec/prawn/svg/transform_parser_spec.rb
168
186
  - spec/prawn/svg/ttf_spec.rb
169
187
  - spec/prawn/svg/url_loader_spec.rb
170
188
  - spec/sample_images/mushroom-long.jpg
@@ -180,9 +198,11 @@ files:
180
198
  - spec/sample_svg/cubic01a.svg
181
199
  - spec/sample_svg/cubic02.svg
182
200
  - spec/sample_svg/display_none.svg
201
+ - spec/sample_svg/double_opacity.svg
183
202
  - spec/sample_svg/ellipse01.svg
184
203
  - spec/sample_svg/gistfile1.svg
185
204
  - spec/sample_svg/google_charts.svg
205
+ - spec/sample_svg/gradient_transform.svg
186
206
  - spec/sample_svg/gradients.svg
187
207
  - spec/sample_svg/hidden_paths.svg
188
208
  - spec/sample_svg/highcharts.svg
@@ -190,6 +210,7 @@ files:
190
210
  - spec/sample_svg/image02_base64.svg
191
211
  - spec/sample_svg/image03.svg
192
212
  - spec/sample_svg/line01.svg
213
+ - spec/sample_svg/links.svg
193
214
  - spec/sample_svg/marker.svg
194
215
  - spec/sample_svg/markers_degenerate_cp.svg
195
216
  - spec/sample_svg/maths.svg
@@ -206,6 +227,8 @@ files:
206
227
  - spec/sample_svg/polyline01.svg
207
228
  - spec/sample_svg/preserve-space.svg
208
229
  - spec/sample_svg/quad01.svg
230
+ - spec/sample_svg/radgrad01-bounding.svg
231
+ - spec/sample_svg/radgrad01.svg
209
232
  - spec/sample_svg/rect01.svg
210
233
  - spec/sample_svg/rect02.svg
211
234
  - spec/sample_svg/rotate_scale.svg
@@ -214,8 +237,11 @@ files:
214
237
  - spec/sample_svg/subfamilies.svg
215
238
  - spec/sample_svg/subviewports.svg
216
239
  - spec/sample_svg/subviewports2.svg
240
+ - spec/sample_svg/svg_fill.svg
241
+ - spec/sample_svg/text-decoration.svg
217
242
  - spec/sample_svg/text_entities.svg
218
243
  - spec/sample_svg/text_stroke.svg
244
+ - spec/sample_svg/transform.svg
219
245
  - spec/sample_svg/tref01.svg
220
246
  - spec/sample_svg/triangle01.svg
221
247
  - spec/sample_svg/tspan01.svg
@@ -226,6 +252,7 @@ files:
226
252
  - spec/sample_svg/tspan05.svg
227
253
  - spec/sample_svg/tspan91.svg
228
254
  - spec/sample_svg/use.svg
255
+ - spec/sample_svg/use_disordered.svg
229
256
  - spec/sample_svg/viewbox.svg
230
257
  - spec/sample_svg/viewport.svg
231
258
  - spec/sample_svg/warning-radioactive.svg
@@ -235,7 +262,7 @@ homepage: http://github.com/mogest/prawn-svg
235
262
  licenses:
236
263
  - MIT
237
264
  metadata: {}
238
- post_install_message:
265
+ post_install_message:
239
266
  rdoc_options: []
240
267
  require_paths:
241
268
  - lib
@@ -243,19 +270,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
243
270
  requirements:
244
271
  - - ">="
245
272
  - !ruby/object:Gem::Version
246
- version: 2.1.0
273
+ version: 2.3.0
247
274
  required_rubygems_version: !ruby/object:Gem::Requirement
248
275
  requirements:
249
276
  - - ">="
250
277
  - !ruby/object:Gem::Version
251
278
  version: '0'
252
279
  requirements: []
253
- rubygems_version: 3.0.1
254
- signing_key:
280
+ rubygems_version: 3.2.3
281
+ signing_key:
255
282
  specification_version: 4
256
283
  summary: SVG renderer for Prawn PDF library
257
284
  test_files:
258
285
  - spec/integration_spec.rb
286
+ - spec/prawn/svg/attributes/opacity_spec.rb
259
287
  - spec/prawn/svg/attributes/transform_spec.rb
260
288
  - spec/prawn/svg/calculators/aspect_ratio_spec.rb
261
289
  - spec/prawn/svg/calculators/document_sizing_spec.rb
@@ -281,6 +309,7 @@ test_files:
281
309
  - spec/prawn/svg/loaders/web_spec.rb
282
310
  - spec/prawn/svg/pathable_spec.rb
283
311
  - spec/prawn/svg/properties_spec.rb
312
+ - spec/prawn/svg/transform_parser_spec.rb
284
313
  - spec/prawn/svg/ttf_spec.rb
285
314
  - spec/prawn/svg/url_loader_spec.rb
286
315
  - spec/sample_images/mushroom-long.jpg
@@ -296,9 +325,11 @@ test_files:
296
325
  - spec/sample_svg/cubic01a.svg
297
326
  - spec/sample_svg/cubic02.svg
298
327
  - spec/sample_svg/display_none.svg
328
+ - spec/sample_svg/double_opacity.svg
299
329
  - spec/sample_svg/ellipse01.svg
300
330
  - spec/sample_svg/gistfile1.svg
301
331
  - spec/sample_svg/google_charts.svg
332
+ - spec/sample_svg/gradient_transform.svg
302
333
  - spec/sample_svg/gradients.svg
303
334
  - spec/sample_svg/hidden_paths.svg
304
335
  - spec/sample_svg/highcharts.svg
@@ -306,6 +337,7 @@ test_files:
306
337
  - spec/sample_svg/image02_base64.svg
307
338
  - spec/sample_svg/image03.svg
308
339
  - spec/sample_svg/line01.svg
340
+ - spec/sample_svg/links.svg
309
341
  - spec/sample_svg/marker.svg
310
342
  - spec/sample_svg/markers_degenerate_cp.svg
311
343
  - spec/sample_svg/maths.svg
@@ -322,6 +354,8 @@ test_files:
322
354
  - spec/sample_svg/polyline01.svg
323
355
  - spec/sample_svg/preserve-space.svg
324
356
  - spec/sample_svg/quad01.svg
357
+ - spec/sample_svg/radgrad01-bounding.svg
358
+ - spec/sample_svg/radgrad01.svg
325
359
  - spec/sample_svg/rect01.svg
326
360
  - spec/sample_svg/rect02.svg
327
361
  - spec/sample_svg/rotate_scale.svg
@@ -330,8 +364,11 @@ test_files:
330
364
  - spec/sample_svg/subfamilies.svg
331
365
  - spec/sample_svg/subviewports.svg
332
366
  - spec/sample_svg/subviewports2.svg
367
+ - spec/sample_svg/svg_fill.svg
368
+ - spec/sample_svg/text-decoration.svg
333
369
  - spec/sample_svg/text_entities.svg
334
370
  - spec/sample_svg/text_stroke.svg
371
+ - spec/sample_svg/transform.svg
335
372
  - spec/sample_svg/tref01.svg
336
373
  - spec/sample_svg/triangle01.svg
337
374
  - spec/sample_svg/tspan01.svg
@@ -342,6 +379,7 @@ test_files:
342
379
  - spec/sample_svg/tspan05.svg
343
380
  - spec/sample_svg/tspan91.svg
344
381
  - spec/sample_svg/use.svg
382
+ - spec/sample_svg/use_disordered.svg
345
383
  - spec/sample_svg/viewbox.svg
346
384
  - spec/sample_svg/viewport.svg
347
385
  - spec/sample_svg/warning-radioactive.svg
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.10
4
- - 2.2.7
5
- - 2.3.3
6
- - 2.4.0
7
- - 2.5.3
8
- - 2.6.1