prawn-svg 0.24.0 → 0.25.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -9
  3. data/lib/prawn/svg/attributes.rb +1 -1
  4. data/lib/prawn/svg/attributes/space.rb +10 -0
  5. data/lib/prawn/svg/attributes/stroke.rb +2 -2
  6. data/lib/prawn/svg/attributes/transform.rb +2 -2
  7. data/lib/prawn/svg/calculators/document_sizing.rb +4 -5
  8. data/lib/prawn/svg/calculators/pixels.rb +27 -3
  9. data/lib/prawn/svg/document.rb +0 -18
  10. data/lib/prawn/svg/elements.rb +2 -2
  11. data/lib/prawn/svg/elements/base.rb +14 -2
  12. data/lib/prawn/svg/elements/circle.rb +1 -1
  13. data/lib/prawn/svg/elements/depth_first_base.rb +52 -0
  14. data/lib/prawn/svg/elements/ellipse.rb +2 -2
  15. data/lib/prawn/svg/elements/image.rb +2 -2
  16. data/lib/prawn/svg/elements/line.rb +4 -4
  17. data/lib/prawn/svg/elements/marker.rb +2 -2
  18. data/lib/prawn/svg/elements/rect.rb +3 -3
  19. data/lib/prawn/svg/elements/root.rb +5 -1
  20. data/lib/prawn/svg/elements/text.rb +47 -85
  21. data/lib/prawn/svg/elements/text_component.rb +186 -0
  22. data/lib/prawn/svg/elements/use.rb +1 -1
  23. data/lib/prawn/svg/elements/viewport.rb +28 -0
  24. data/lib/prawn/svg/interface.rb +20 -12
  25. data/lib/prawn/svg/pathable.rb +18 -2
  26. data/lib/prawn/svg/state.rb +3 -2
  27. data/lib/prawn/svg/version.rb +1 -1
  28. data/spec/prawn/svg/attributes/transform_spec.rb +2 -2
  29. data/spec/prawn/svg/calculators/pixels_spec.rb +72 -0
  30. data/spec/prawn/svg/document_spec.rb +0 -28
  31. data/spec/prawn/svg/elements/base_spec.rb +1 -1
  32. data/spec/prawn/svg/elements/gradient_spec.rb +1 -1
  33. data/spec/prawn/svg/elements/line_spec.rb +1 -1
  34. data/spec/prawn/svg/elements/marker_spec.rb +4 -0
  35. data/spec/prawn/svg/elements/text_spec.rb +104 -15
  36. data/spec/sample_svg/markers_degenerate_cp.svg +19 -0
  37. data/spec/sample_svg/offset_viewport.svg +8 -0
  38. data/spec/sample_svg/subviewports.svg +173 -0
  39. data/spec/sample_svg/subviewports2.svg +16 -0
  40. data/spec/sample_svg/tref01.svg +21 -0
  41. data/spec/sample_svg/tspan05.svg +40 -0
  42. data/spec/sample_svg/tspan91.svg +34 -0
  43. data/spec/spec_helper.rb +6 -0
  44. metadata +22 -2
@@ -0,0 +1,34 @@
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="10cm" height="6cm" viewBox="0 0 1000 600" xmlns="http://www.w3.org/2000/svg" version="1.1">
4
+ <g font-family="Verdana" font-size="45" >
5
+ <text x="10 30 50 70 90 110 130 150 800 800 800 460 480 500 520 540 560 580 600 620 640" y="150" fill="blue">
6
+ You are
7
+ <tspan font-weight="bold" fill="red" x="170 270 370">
8
+ hardly
9
+ </tspan>
10
+ a banana.
11
+ </text>
12
+
13
+ <text x="10 30 50 70 90 110 130 150 170 190 210 230 250 270 290 310 330 350 370 390" y="250">
14
+ Then
15
+ <tspan x="300 320 340 360 380 400 420 440 460 480" y="230" fill="red">
16
+ Start
17
+ </tspan>
18
+ as you mean to go on
19
+ </text>
20
+
21
+ <text x="10 30 50 70 90 110" y="450">
22
+ Then
23
+ <tspan x="300 320 340 360 380 400 420 440 460 480" y="430" fill="red">
24
+ Start
25
+ </tspan>
26
+ as you mean to go on
27
+ <tspan y="500">ok</tspan>
28
+ </text>
29
+ </g>
30
+
31
+ <!-- Show outline of canvas using 'rect' element -->
32
+ <rect x="1" y="1" width="998" height="598"
33
+ fill="none" stroke="blue" stroke-width="2" />
34
+ </svg>
@@ -18,6 +18,12 @@ module Support
18
18
  add.call element.base_calls
19
19
  end
20
20
  end
21
+
22
+ def fake_state
23
+ state = Prawn::SVG::State.new
24
+ state.viewport_sizing = document.sizing if defined?(document)
25
+ state
26
+ end
21
27
  end
22
28
 
23
29
  RSpec.configure do |config|
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.24.0
4
+ version: 0.25.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: 2016-04-24 00:00:00.000000000 Z
11
+ date: 2016-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: prawn
@@ -91,6 +91,7 @@ files:
91
91
  - lib/prawn/svg/attributes.rb
92
92
  - lib/prawn/svg/attributes/clip_path.rb
93
93
  - lib/prawn/svg/attributes/opacity.rb
94
+ - lib/prawn/svg/attributes/space.rb
94
95
  - lib/prawn/svg/attributes/stroke.rb
95
96
  - lib/prawn/svg/attributes/transform.rb
96
97
  - lib/prawn/svg/calculators/arc_to_bezier_curve.rb
@@ -104,6 +105,7 @@ files:
104
105
  - lib/prawn/svg/elements/base.rb
105
106
  - lib/prawn/svg/elements/circle.rb
106
107
  - lib/prawn/svg/elements/container.rb
108
+ - lib/prawn/svg/elements/depth_first_base.rb
107
109
  - lib/prawn/svg/elements/ellipse.rb
108
110
  - lib/prawn/svg/elements/gradient.rb
109
111
  - lib/prawn/svg/elements/ignored.rb
@@ -117,7 +119,9 @@ files:
117
119
  - lib/prawn/svg/elements/root.rb
118
120
  - lib/prawn/svg/elements/style.rb
119
121
  - lib/prawn/svg/elements/text.rb
122
+ - lib/prawn/svg/elements/text_component.rb
120
123
  - lib/prawn/svg/elements/use.rb
124
+ - lib/prawn/svg/elements/viewport.rb
121
125
  - lib/prawn/svg/extension.rb
122
126
  - lib/prawn/svg/font.rb
123
127
  - lib/prawn/svg/font_registry.rb
@@ -136,6 +140,7 @@ files:
136
140
  - spec/prawn/svg/attributes/transform_spec.rb
137
141
  - spec/prawn/svg/calculators/aspect_ratio_spec.rb
138
142
  - spec/prawn/svg/calculators/document_sizing_spec.rb
143
+ - spec/prawn/svg/calculators/pixels_spec.rb
139
144
  - spec/prawn/svg/color_spec.rb
140
145
  - spec/prawn/svg/css_spec.rb
141
146
  - spec/prawn/svg/document_spec.rb
@@ -182,11 +187,13 @@ files:
182
187
  - spec/sample_svg/image03.svg
183
188
  - spec/sample_svg/line01.svg
184
189
  - spec/sample_svg/marker.svg
190
+ - spec/sample_svg/markers_degenerate_cp.svg
185
191
  - spec/sample_svg/maths.svg
186
192
  - spec/sample_svg/matrix_transform.svg
187
193
  - spec/sample_svg/matrix_transform_3.svg
188
194
  - spec/sample_svg/negminy.svg
189
195
  - spec/sample_svg/no_width_or_height.svg
196
+ - spec/sample_svg/offset_viewport.svg
190
197
  - spec/sample_svg/omnigraffle.svg
191
198
  - spec/sample_svg/opacity01.svg
192
199
  - spec/sample_svg/path.svg
@@ -201,13 +208,18 @@ files:
201
208
  - spec/sample_svg/scale.svg
202
209
  - spec/sample_svg/scruffy_graph.svg
203
210
  - spec/sample_svg/subfamilies.svg
211
+ - spec/sample_svg/subviewports.svg
212
+ - spec/sample_svg/subviewports2.svg
204
213
  - spec/sample_svg/text_entities.svg
214
+ - spec/sample_svg/tref01.svg
205
215
  - spec/sample_svg/triangle01.svg
206
216
  - spec/sample_svg/tspan01.svg
207
217
  - spec/sample_svg/tspan02.svg
208
218
  - spec/sample_svg/tspan03-cc.svg
209
219
  - spec/sample_svg/tspan03.svg
210
220
  - spec/sample_svg/tspan04.svg
221
+ - spec/sample_svg/tspan05.svg
222
+ - spec/sample_svg/tspan91.svg
211
223
  - spec/sample_svg/use.svg
212
224
  - spec/sample_svg/viewbox.svg
213
225
  - spec/sample_svg/viewport.svg
@@ -242,6 +254,7 @@ test_files:
242
254
  - spec/prawn/svg/attributes/transform_spec.rb
243
255
  - spec/prawn/svg/calculators/aspect_ratio_spec.rb
244
256
  - spec/prawn/svg/calculators/document_sizing_spec.rb
257
+ - spec/prawn/svg/calculators/pixels_spec.rb
245
258
  - spec/prawn/svg/color_spec.rb
246
259
  - spec/prawn/svg/css_spec.rb
247
260
  - spec/prawn/svg/document_spec.rb
@@ -288,11 +301,13 @@ test_files:
288
301
  - spec/sample_svg/image03.svg
289
302
  - spec/sample_svg/line01.svg
290
303
  - spec/sample_svg/marker.svg
304
+ - spec/sample_svg/markers_degenerate_cp.svg
291
305
  - spec/sample_svg/maths.svg
292
306
  - spec/sample_svg/matrix_transform.svg
293
307
  - spec/sample_svg/matrix_transform_3.svg
294
308
  - spec/sample_svg/negminy.svg
295
309
  - spec/sample_svg/no_width_or_height.svg
310
+ - spec/sample_svg/offset_viewport.svg
296
311
  - spec/sample_svg/omnigraffle.svg
297
312
  - spec/sample_svg/opacity01.svg
298
313
  - spec/sample_svg/path.svg
@@ -307,13 +322,18 @@ test_files:
307
322
  - spec/sample_svg/scale.svg
308
323
  - spec/sample_svg/scruffy_graph.svg
309
324
  - spec/sample_svg/subfamilies.svg
325
+ - spec/sample_svg/subviewports.svg
326
+ - spec/sample_svg/subviewports2.svg
310
327
  - spec/sample_svg/text_entities.svg
328
+ - spec/sample_svg/tref01.svg
311
329
  - spec/sample_svg/triangle01.svg
312
330
  - spec/sample_svg/tspan01.svg
313
331
  - spec/sample_svg/tspan02.svg
314
332
  - spec/sample_svg/tspan03-cc.svg
315
333
  - spec/sample_svg/tspan03.svg
316
334
  - spec/sample_svg/tspan04.svg
335
+ - spec/sample_svg/tspan05.svg
336
+ - spec/sample_svg/tspan91.svg
317
337
  - spec/sample_svg/use.svg
318
338
  - spec/sample_svg/viewbox.svg
319
339
  - spec/sample_svg/viewport.svg