prawn-svg 0.32.0 → 0.34.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +20 -3
  3. data/.gitignore +1 -0
  4. data/README.md +32 -24
  5. data/lib/prawn/svg/attributes/stroke.rb +5 -0
  6. data/lib/prawn/svg/color.rb +46 -22
  7. data/lib/prawn/svg/css/selector_parser.rb +11 -11
  8. data/lib/prawn/svg/css/stylesheets.rb +4 -4
  9. data/lib/prawn/svg/document.rb +20 -4
  10. data/lib/prawn/svg/elements/base.rb +10 -11
  11. data/lib/prawn/svg/elements/gradient.rb +2 -2
  12. data/lib/prawn/svg/elements/image.rb +54 -21
  13. data/lib/prawn/svg/elements/path.rb +0 -2
  14. data/lib/prawn/svg/elements/root.rb +1 -1
  15. data/lib/prawn/svg/elements/text_component.rb +12 -3
  16. data/lib/prawn/svg/elements/use.rb +20 -12
  17. data/lib/prawn/svg/elements.rb +1 -0
  18. data/lib/prawn/svg/gradients.rb +48 -0
  19. data/lib/prawn/svg/interface.rb +17 -187
  20. data/lib/prawn/svg/loaders/data.rb +4 -3
  21. data/lib/prawn/svg/properties.rb +2 -0
  22. data/lib/prawn/svg/renderer.rb +236 -0
  23. data/lib/prawn/svg/version.rb +1 -1
  24. data/lib/prawn-svg.rb +2 -0
  25. data/prawn-svg.gemspec +18 -16
  26. data/spec/prawn/svg/color_spec.rb +29 -16
  27. data/spec/prawn/svg/document_spec.rb +17 -0
  28. data/spec/prawn/svg/elements/marker_spec.rb +1 -1
  29. data/spec/prawn/svg/elements/root_spec.rb +28 -0
  30. data/spec/prawn/svg/elements/text_spec.rb +27 -0
  31. data/spec/prawn/svg/interface_spec.rb +10 -2
  32. data/spec/sample_images/image_svg_embed.svg +6 -0
  33. data/spec/sample_svg/cmyk.svg +5 -0
  34. data/spec/sample_svg/gradients-cmyk.svg +40 -0
  35. data/spec/sample_svg/image_svg.svg +9 -0
  36. data/spec/sample_svg/ordering.svg +12 -0
  37. data/spec/sample_svg/symbol.svg +12 -0
  38. data/spec/spec_helper.rb +29 -5
  39. metadata +67 -23
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prawn-svg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.0
4
+ version: 0.34.0
5
5
  platform: ruby
6
6
  authors:
7
- - Roger Nesbitt
7
+ - Mog Nesbitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-07 00:00:00.000000000 Z
11
+ date: 2024-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: prawn
14
+ name: base64
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.11.1
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '3'
19
+ version: 0.1.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 0.11.1
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '3'
26
+ version: 0.1.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: css_parser
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,6 +38,40 @@ dependencies:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
40
  version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: matrix
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.4.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: prawn
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 0.11.1
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '3'
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 0.11.1
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '3'
47
75
  - !ruby/object:Gem::Dependency
48
76
  name: rexml
49
77
  requirement: !ruby/object:Gem::Requirement
@@ -59,37 +87,37 @@ dependencies:
59
87
  - !ruby/object:Gem::Version
60
88
  version: '3.2'
61
89
  - !ruby/object:Gem::Dependency
62
- name: rspec
90
+ name: rake
63
91
  requirement: !ruby/object:Gem::Requirement
64
92
  requirements:
65
93
  - - "~>"
66
94
  - !ruby/object:Gem::Version
67
- version: '3.0'
95
+ version: '13.0'
68
96
  type: :development
69
97
  prerelease: false
70
98
  version_requirements: !ruby/object:Gem::Requirement
71
99
  requirements:
72
100
  - - "~>"
73
101
  - !ruby/object:Gem::Version
74
- version: '3.0'
102
+ version: '13.0'
75
103
  - !ruby/object:Gem::Dependency
76
- name: rake
104
+ name: rspec
77
105
  requirement: !ruby/object:Gem::Requirement
78
106
  requirements:
79
107
  - - "~>"
80
108
  - !ruby/object:Gem::Version
81
- version: '13.0'
109
+ version: '3.0'
82
110
  type: :development
83
111
  prerelease: false
84
112
  version_requirements: !ruby/object:Gem::Requirement
85
113
  requirements:
86
114
  - - "~>"
87
115
  - !ruby/object:Gem::Version
88
- version: '13.0'
116
+ version: '3.0'
89
117
  description: This gem allows you to render SVG directly into a PDF using the 'prawn'
90
118
  gem. Since PDF is vector-based, you'll get nice scaled graphics if you use SVG
91
119
  instead of an image.
92
- email: roger@seriousorange.com
120
+ email: mog@seriousorange.com
93
121
  executables: []
94
122
  extensions: []
95
123
  extra_rdoc_files: []
@@ -143,12 +171,14 @@ files:
143
171
  - lib/prawn/svg/extensions/additional_gradient_transforms.rb
144
172
  - lib/prawn/svg/font.rb
145
173
  - lib/prawn/svg/font_registry.rb
174
+ - lib/prawn/svg/gradients.rb
146
175
  - lib/prawn/svg/interface.rb
147
176
  - lib/prawn/svg/loaders/data.rb
148
177
  - lib/prawn/svg/loaders/file.rb
149
178
  - lib/prawn/svg/loaders/web.rb
150
179
  - lib/prawn/svg/pathable.rb
151
180
  - lib/prawn/svg/properties.rb
181
+ - lib/prawn/svg/renderer.rb
152
182
  - lib/prawn/svg/state.rb
153
183
  - lib/prawn/svg/transform_parser.rb
154
184
  - lib/prawn/svg/ttf.rb
@@ -173,6 +203,7 @@ files:
173
203
  - spec/prawn/svg/elements/path_spec.rb
174
204
  - spec/prawn/svg/elements/polygon_spec.rb
175
205
  - spec/prawn/svg/elements/polyline_spec.rb
206
+ - spec/prawn/svg/elements/root_spec.rb
176
207
  - spec/prawn/svg/elements/text_spec.rb
177
208
  - spec/prawn/svg/font_registry_spec.rb
178
209
  - spec/prawn/svg/font_spec.rb
@@ -185,6 +216,7 @@ files:
185
216
  - spec/prawn/svg/transform_parser_spec.rb
186
217
  - spec/prawn/svg/ttf_spec.rb
187
218
  - spec/prawn/svg/url_loader_spec.rb
219
+ - spec/sample_images/image_svg_embed.svg
188
220
  - spec/sample_images/mushroom-long.jpg
189
221
  - spec/sample_images/mushroom-wide.jpg
190
222
  - spec/sample_output/.keep
@@ -194,6 +226,7 @@ files:
194
226
  - spec/sample_svg/circle01.svg
195
227
  - spec/sample_svg/clip_path.svg
196
228
  - spec/sample_svg/close_path.svg
229
+ - spec/sample_svg/cmyk.svg
197
230
  - spec/sample_svg/cubic01.svg
198
231
  - spec/sample_svg/cubic01a.svg
199
232
  - spec/sample_svg/cubic02.svg
@@ -203,12 +236,14 @@ files:
203
236
  - spec/sample_svg/gistfile1.svg
204
237
  - spec/sample_svg/google_charts.svg
205
238
  - spec/sample_svg/gradient_transform.svg
239
+ - spec/sample_svg/gradients-cmyk.svg
206
240
  - spec/sample_svg/gradients.svg
207
241
  - spec/sample_svg/hidden_paths.svg
208
242
  - spec/sample_svg/highcharts.svg
209
243
  - spec/sample_svg/image01.svg
210
244
  - spec/sample_svg/image02_base64.svg
211
245
  - spec/sample_svg/image03.svg
246
+ - spec/sample_svg/image_svg.svg
212
247
  - spec/sample_svg/line01.svg
213
248
  - spec/sample_svg/links.svg
214
249
  - spec/sample_svg/marker.svg
@@ -221,6 +256,7 @@ files:
221
256
  - spec/sample_svg/offset_viewport.svg
222
257
  - spec/sample_svg/omnigraffle.svg
223
258
  - spec/sample_svg/opacity01.svg
259
+ - spec/sample_svg/ordering.svg
224
260
  - spec/sample_svg/path.svg
225
261
  - spec/sample_svg/pie_piece.svg
226
262
  - spec/sample_svg/polygon01.svg
@@ -238,6 +274,7 @@ files:
238
274
  - spec/sample_svg/subviewports.svg
239
275
  - spec/sample_svg/subviewports2.svg
240
276
  - spec/sample_svg/svg_fill.svg
277
+ - spec/sample_svg/symbol.svg
241
278
  - spec/sample_svg/text-decoration.svg
242
279
  - spec/sample_svg/text_entities.svg
243
280
  - spec/sample_svg/text_stroke.svg
@@ -270,14 +307,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
270
307
  requirements:
271
308
  - - ">="
272
309
  - !ruby/object:Gem::Version
273
- version: 2.3.0
310
+ version: 2.5.0
274
311
  required_rubygems_version: !ruby/object:Gem::Requirement
275
312
  requirements:
276
313
  - - ">="
277
314
  - !ruby/object:Gem::Version
278
315
  version: '0'
279
316
  requirements: []
280
- rubygems_version: 3.2.3
317
+ rubygems_version: 3.5.3
281
318
  signing_key:
282
319
  specification_version: 4
283
320
  summary: SVG renderer for Prawn PDF library
@@ -300,6 +337,7 @@ test_files:
300
337
  - spec/prawn/svg/elements/path_spec.rb
301
338
  - spec/prawn/svg/elements/polygon_spec.rb
302
339
  - spec/prawn/svg/elements/polyline_spec.rb
340
+ - spec/prawn/svg/elements/root_spec.rb
303
341
  - spec/prawn/svg/elements/text_spec.rb
304
342
  - spec/prawn/svg/font_registry_spec.rb
305
343
  - spec/prawn/svg/font_spec.rb
@@ -312,6 +350,7 @@ test_files:
312
350
  - spec/prawn/svg/transform_parser_spec.rb
313
351
  - spec/prawn/svg/ttf_spec.rb
314
352
  - spec/prawn/svg/url_loader_spec.rb
353
+ - spec/sample_images/image_svg_embed.svg
315
354
  - spec/sample_images/mushroom-long.jpg
316
355
  - spec/sample_images/mushroom-wide.jpg
317
356
  - spec/sample_output/.keep
@@ -321,6 +360,7 @@ test_files:
321
360
  - spec/sample_svg/circle01.svg
322
361
  - spec/sample_svg/clip_path.svg
323
362
  - spec/sample_svg/close_path.svg
363
+ - spec/sample_svg/cmyk.svg
324
364
  - spec/sample_svg/cubic01.svg
325
365
  - spec/sample_svg/cubic01a.svg
326
366
  - spec/sample_svg/cubic02.svg
@@ -330,12 +370,14 @@ test_files:
330
370
  - spec/sample_svg/gistfile1.svg
331
371
  - spec/sample_svg/google_charts.svg
332
372
  - spec/sample_svg/gradient_transform.svg
373
+ - spec/sample_svg/gradients-cmyk.svg
333
374
  - spec/sample_svg/gradients.svg
334
375
  - spec/sample_svg/hidden_paths.svg
335
376
  - spec/sample_svg/highcharts.svg
336
377
  - spec/sample_svg/image01.svg
337
378
  - spec/sample_svg/image02_base64.svg
338
379
  - spec/sample_svg/image03.svg
380
+ - spec/sample_svg/image_svg.svg
339
381
  - spec/sample_svg/line01.svg
340
382
  - spec/sample_svg/links.svg
341
383
  - spec/sample_svg/marker.svg
@@ -348,6 +390,7 @@ test_files:
348
390
  - spec/sample_svg/offset_viewport.svg
349
391
  - spec/sample_svg/omnigraffle.svg
350
392
  - spec/sample_svg/opacity01.svg
393
+ - spec/sample_svg/ordering.svg
351
394
  - spec/sample_svg/path.svg
352
395
  - spec/sample_svg/pie_piece.svg
353
396
  - spec/sample_svg/polygon01.svg
@@ -365,6 +408,7 @@ test_files:
365
408
  - spec/sample_svg/subviewports.svg
366
409
  - spec/sample_svg/subviewports2.svg
367
410
  - spec/sample_svg/svg_fill.svg
411
+ - spec/sample_svg/symbol.svg
368
412
  - spec/sample_svg/text-decoration.svg
369
413
  - spec/sample_svg/text_entities.svg
370
414
  - spec/sample_svg/text_stroke.svg