prawn-svg 0.32.0 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
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