prawn-svg 0.23.1 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/README.md +15 -9
- data/lib/prawn-svg.rb +3 -0
- data/lib/prawn/svg/attributes.rb +1 -1
- data/lib/prawn/svg/attributes/clip_path.rb +6 -7
- data/lib/prawn/svg/attributes/opacity.rb +3 -3
- data/lib/prawn/svg/attributes/stroke.rb +6 -4
- data/lib/prawn/svg/calculators/arc_to_bezier_curve.rb +114 -0
- data/lib/prawn/svg/elements.rb +4 -1
- data/lib/prawn/svg/elements/base.rb +76 -69
- data/lib/prawn/svg/elements/container.rb +5 -6
- data/lib/prawn/svg/elements/gradient.rb +4 -4
- data/lib/prawn/svg/elements/image.rb +1 -1
- data/lib/prawn/svg/elements/line.rb +15 -7
- data/lib/prawn/svg/elements/marker.rb +72 -0
- data/lib/prawn/svg/elements/path.rb +23 -147
- data/lib/prawn/svg/elements/polygon.rb +14 -6
- data/lib/prawn/svg/elements/polyline.rb +12 -11
- data/lib/prawn/svg/elements/root.rb +3 -1
- data/lib/prawn/svg/elements/text.rb +38 -17
- data/lib/prawn/svg/font.rb +6 -6
- data/lib/prawn/svg/interface.rb +3 -0
- data/lib/prawn/svg/pathable.rb +130 -0
- data/lib/prawn/svg/properties.rb +122 -0
- data/lib/prawn/svg/state.rb +7 -29
- data/lib/prawn/svg/version.rb +1 -1
- data/spec/prawn/svg/elements/base_spec.rb +19 -32
- data/spec/prawn/svg/elements/line_spec.rb +37 -0
- data/spec/prawn/svg/elements/marker_spec.rb +90 -0
- data/spec/prawn/svg/elements/path_spec.rb +10 -10
- data/spec/prawn/svg/elements/polygon_spec.rb +49 -0
- data/spec/prawn/svg/elements/polyline_spec.rb +47 -0
- data/spec/prawn/svg/elements/style_spec.rb +1 -1
- data/spec/prawn/svg/elements/text_spec.rb +37 -5
- data/spec/prawn/svg/pathable_spec.rb +92 -0
- data/spec/prawn/svg/properties_spec.rb +186 -0
- data/spec/sample_svg/arrows.svg +73 -0
- data/spec/sample_svg/marker.svg +32 -0
- data/spec/sample_svg/polygon01.svg +25 -5
- metadata +23 -8
- data/lib/prawn/svg/attributes/color.rb +0 -5
- data/lib/prawn/svg/attributes/display.rb +0 -5
- data/lib/prawn/svg/attributes/font.rb +0 -38
- data/spec/prawn/svg/attributes/font_spec.rb +0 -52
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Prawn::SVG::Pathable do
|
4
|
+
class FakeElement < Prawn::SVG::Elements::Base
|
5
|
+
include Prawn::SVG::Pathable
|
6
|
+
|
7
|
+
def initialize(*args)
|
8
|
+
super
|
9
|
+
@properties = Struct.new(:marker_start, :marker_mid, :marker_end).new
|
10
|
+
end
|
11
|
+
|
12
|
+
public :apply_commands
|
13
|
+
public :apply_markers
|
14
|
+
|
15
|
+
def commands
|
16
|
+
@commands ||= [
|
17
|
+
Prawn::SVG::Pathable::Move.new([10, 10]),
|
18
|
+
Prawn::SVG::Pathable::Line.new([20, 20]),
|
19
|
+
Prawn::SVG::Pathable::Curve.new([30, 30], [25, 20], [25, 25]),
|
20
|
+
Prawn::SVG::Pathable::Close.new([10, 10])
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:document) { Prawn::SVG::Document.new("<svg></svg>", [800, 600], {width: 800, height: 600}) }
|
26
|
+
let(:state) { Prawn::SVG::State.new }
|
27
|
+
|
28
|
+
subject do
|
29
|
+
FakeElement.new(document, document.root, [], state)
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#bounding_box" do
|
33
|
+
it "determines the bounding box using the translated commands" do
|
34
|
+
expect(subject.bounding_box).to eq [10, 590, 30, 570]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#apply_commands" do
|
39
|
+
it "applies the commands to the call stack" do
|
40
|
+
subject.apply_commands
|
41
|
+
|
42
|
+
expect(subject.base_calls).to eq [
|
43
|
+
["move_to", [[10.0, 590.0]], []],
|
44
|
+
["line_to", [[20.0, 580.0]], []],
|
45
|
+
["curve_to", [[30.0, 570.0], {bounds: [[25.0, 580.0], [25.0, 575.0]]}], []],
|
46
|
+
["close_path", [], []]
|
47
|
+
]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#apply_markers" do
|
52
|
+
let(:marker) { instance_double(Prawn::SVG::Elements::Marker, name: "marker") }
|
53
|
+
|
54
|
+
before do
|
55
|
+
document.elements_by_id["triangle"] = marker
|
56
|
+
end
|
57
|
+
|
58
|
+
context "with marker-start attribute specified" do
|
59
|
+
before do
|
60
|
+
subject.properties.marker_start = "url(#triangle)"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "calls apply_marker on the marker" do
|
64
|
+
expect(marker).to receive(:apply_marker).with(subject, point: [10, 10], angle: 45)
|
65
|
+
subject.apply_markers
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context "with marker-mid attribute specified" do
|
70
|
+
before do
|
71
|
+
subject.properties.marker_mid = "url(#triangle)"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "calls apply_marker on the marker" do
|
75
|
+
expect(marker).to receive(:apply_marker).with(subject, point: [20, 20], angle: 45)
|
76
|
+
expect(marker).to receive(:apply_marker).with(subject, point: [30, 30], angle: -45)
|
77
|
+
subject.apply_markers
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "with marker-end attribute specified" do
|
82
|
+
before do
|
83
|
+
subject.properties.marker_end = "url(#triangle)"
|
84
|
+
end
|
85
|
+
|
86
|
+
it "calls apply_marker on the marker" do
|
87
|
+
expect(marker).to receive(:apply_marker).with(subject, point: [10, 10], angle: -45)
|
88
|
+
subject.apply_markers
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,186 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Prawn::SVG::Properties do
|
4
|
+
subject { Prawn::SVG::Properties.new }
|
5
|
+
|
6
|
+
describe "#load_default_stylesheet" do
|
7
|
+
it "loads in the defaults and returns self" do
|
8
|
+
expect(subject.load_default_stylesheet).to eq subject
|
9
|
+
expect(subject.font_family).to eq 'sans-serif'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#set" do
|
14
|
+
it "sets a property" do
|
15
|
+
result = subject.set('color', 'red')
|
16
|
+
expect(result).to be
|
17
|
+
expect(subject.color).to eq 'red'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "handles property names that are not lower case" do
|
21
|
+
result = subject.set('COLor', 'red')
|
22
|
+
expect(result).to be
|
23
|
+
expect(subject.color).to eq 'red'
|
24
|
+
end
|
25
|
+
|
26
|
+
it "right-cases and strips keywords" do
|
27
|
+
subject.set('stroke-linecap', ' Round ')
|
28
|
+
expect(subject.stroke_linecap).to eq 'round'
|
29
|
+
end
|
30
|
+
|
31
|
+
it "doesn't right-case values that aren't recognised as keywords" do
|
32
|
+
subject.set('color', 'Red')
|
33
|
+
expect(subject.color).to eq 'Red'
|
34
|
+
end
|
35
|
+
|
36
|
+
it "sets a 'keyword restricted' property to its default if the value doesn't match a keyword" do
|
37
|
+
subject.set('stroke-linecap', 'invalid')
|
38
|
+
expect(subject.stroke_linecap).to eq 'butt'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#load_hash" do
|
43
|
+
it "uses #set to load in a hash of properties" do
|
44
|
+
subject.load_hash("stroke" => "blue", "fill" => "green", 'stroke-linecap' => "Round")
|
45
|
+
expect(subject.stroke).to eq 'blue'
|
46
|
+
expect(subject.fill).to eq 'green'
|
47
|
+
expect(subject.stroke_linecap).to eq 'round'
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#compute_properties" do
|
52
|
+
let(:other) { Prawn::SVG::Properties.new }
|
53
|
+
|
54
|
+
it "auto-inherits inheritable properties when the property is not supplied" do
|
55
|
+
subject.set('color', 'green')
|
56
|
+
subject.compute_properties(other)
|
57
|
+
expect(subject.color).to eq 'green'
|
58
|
+
end
|
59
|
+
|
60
|
+
it "doesn't auto-inherit non-inheritable properties" do
|
61
|
+
subject.set('display', 'none')
|
62
|
+
subject.compute_properties(other)
|
63
|
+
expect(subject.display).to eq 'inline'
|
64
|
+
end
|
65
|
+
|
66
|
+
it "inherits non-inheritable properties when specifically asked to" do
|
67
|
+
subject.set('display', 'none')
|
68
|
+
other.set('display', 'inherit')
|
69
|
+
subject.compute_properties(other)
|
70
|
+
expect(subject.display).to eq 'none'
|
71
|
+
end
|
72
|
+
|
73
|
+
it "uses the new property value" do
|
74
|
+
subject.set('color', 'green')
|
75
|
+
other.set('color', 'red')
|
76
|
+
subject.compute_properties(other)
|
77
|
+
expect(subject.color).to eq 'red'
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "font size" do
|
81
|
+
before do
|
82
|
+
subject.font_size = "15"
|
83
|
+
other.font_size = font_size
|
84
|
+
end
|
85
|
+
|
86
|
+
context "when given a % as a font-size" do
|
87
|
+
let(:font_size) { "120%" }
|
88
|
+
|
89
|
+
it "calculates the new font size" do
|
90
|
+
subject.compute_properties(other)
|
91
|
+
expect(subject.font_size).to eq "18.0"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "when given 'larger' as a font-size" do
|
96
|
+
let(:font_size) { "larger" }
|
97
|
+
|
98
|
+
it "calculates the new font size" do
|
99
|
+
subject.compute_properties(other)
|
100
|
+
expect(subject.font_size).to eq "19.0"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "when given 'smaller' as a font-size" do
|
105
|
+
let(:font_size) { "smaller" }
|
106
|
+
|
107
|
+
it "calculates the new font size" do
|
108
|
+
subject.compute_properties(other)
|
109
|
+
expect(subject.font_size).to eq "11.0"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "when given a value in 'em' as a font-size" do
|
114
|
+
let(:font_size) { "2.5em" }
|
115
|
+
|
116
|
+
it "calculates the new font size" do
|
117
|
+
subject.compute_properties(other)
|
118
|
+
expect(subject.font_size).to eq "37.5"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
context "when given a value in 'rem' as a font-size" do
|
123
|
+
let(:font_size) { "2.5rem" }
|
124
|
+
|
125
|
+
it "calculates the new font size" do
|
126
|
+
subject.compute_properties(other)
|
127
|
+
expect(subject.font_size).to eq "40.0"
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
context "when given a value in 'px' as a font-size" do
|
132
|
+
let(:font_size) { "19.5px" }
|
133
|
+
|
134
|
+
it "uses the font size specified" do
|
135
|
+
subject.compute_properties(other)
|
136
|
+
expect(subject.font_size).to eq "19.5"
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
context "when given a value in 'pt' as a font-size" do
|
141
|
+
let(:font_size) { "19.5pt" }
|
142
|
+
|
143
|
+
it "uses the font size specified" do
|
144
|
+
subject.compute_properties(other)
|
145
|
+
expect(subject.font_size).to eq "19.5"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
context "when given a value without units as a font-size" do
|
150
|
+
let(:font_size) { "19.5" }
|
151
|
+
|
152
|
+
it "uses the font size specified" do
|
153
|
+
subject.compute_properties(other)
|
154
|
+
expect(subject.font_size).to eq "19.5"
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
context "when given the keyword 'inherit' as a font-size" do
|
159
|
+
let(:font_size) { "inherit" }
|
160
|
+
|
161
|
+
it "uses the font size specified by the parent" do
|
162
|
+
subject.compute_properties(other)
|
163
|
+
expect(subject.font_size).to eq "15"
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
describe "#numerical_font_size" do
|
170
|
+
context "when the font size is a number" do
|
171
|
+
before { subject.font_size = "16.5" }
|
172
|
+
|
173
|
+
it "returns the number as a float" do
|
174
|
+
expect(subject.numerical_font_size).to eq 16.5
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
context "when the font size is one of the keyword size specifiers" do
|
179
|
+
before { subject.font_size = "x-large" }
|
180
|
+
|
181
|
+
it "returns the font size number corresponding with the keyword" do
|
182
|
+
expect(subject.numerical_font_size).to eq 24
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
11
|
+
width="200"
|
12
|
+
height="200"
|
13
|
+
id="svg2"
|
14
|
+
version="1.1">
|
15
|
+
<defs
|
16
|
+
id="defs4">
|
17
|
+
<marker
|
18
|
+
style="overflow:visible;"
|
19
|
+
id="Arrow1Lend"
|
20
|
+
refX="0.0"
|
21
|
+
refY="0.0"
|
22
|
+
orient="auto"
|
23
|
+
inkscape:stockid="Arrow1Lend">
|
24
|
+
<path
|
25
|
+
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
26
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
|
27
|
+
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
28
|
+
id="path3762" />
|
29
|
+
</marker>
|
30
|
+
<marker
|
31
|
+
style="overflow:visible;"
|
32
|
+
id="Arrow1LendK"
|
33
|
+
refX="0.0"
|
34
|
+
refY="0.0"
|
35
|
+
orient="auto"
|
36
|
+
inkscape:stockid="Arrow1LendK">
|
37
|
+
<path
|
38
|
+
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
39
|
+
style="stroke:#ff0000;stroke-width:1.0pt;fill:#ff0000;fill-rule:evenodd"
|
40
|
+
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
41
|
+
id="path4230" />
|
42
|
+
</marker>
|
43
|
+
</defs>
|
44
|
+
<metadata
|
45
|
+
id="metadata7">
|
46
|
+
<rdf:RDF>
|
47
|
+
<cc:Work
|
48
|
+
rdf:about="">
|
49
|
+
<dc:format>image/svg+xml</dc:format>
|
50
|
+
<dc:type
|
51
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
52
|
+
<dc:title></dc:title>
|
53
|
+
</cc:Work>
|
54
|
+
</rdf:RDF>
|
55
|
+
</metadata>
|
56
|
+
<g
|
57
|
+
transform="translate(0,-852.36218)"
|
58
|
+
id="layer1"
|
59
|
+
inkscape:groupmode="layer"
|
60
|
+
inkscape:label="Layer 1">
|
61
|
+
<path
|
62
|
+
transform="translate(0,852.36218)"
|
63
|
+
inkscape:connector-curvature="0"
|
64
|
+
id="path2985"
|
65
|
+
d="M 26.263966,144.94669 122.22846,94.439059"
|
66
|
+
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" />
|
67
|
+
<path
|
68
|
+
inkscape:connector-curvature="0"
|
69
|
+
id="path2985-7"
|
70
|
+
d="M 40.406101,953.8723 136.3706,903.36467"
|
71
|
+
style="stroke-linejoin:miter;marker-end:url(#Arrow1LendK);stroke-opacity:1;stroke:#ff0000;stroke-linecap:butt;stroke-width:1px;fill:#ff0000" />
|
72
|
+
</g>
|
73
|
+
</svg>
|
@@ -0,0 +1,32 @@
|
|
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="4in" height="2in"
|
5
|
+
viewBox="0 0 4000 2000" version="1.1"
|
6
|
+
xmlns="http://www.w3.org/2000/svg">
|
7
|
+
<defs>
|
8
|
+
<g stroke="red" fill="cyan" stroke-dasharray="3 3" stroke-opacity="0.5">
|
9
|
+
<marker id="Triangle"
|
10
|
+
viewBox="0 0 20 20" refX="0" refY="5"
|
11
|
+
markerUnits="strokeWidth"
|
12
|
+
markerWidth="4" markerHeight="3"
|
13
|
+
stroke-width="4"
|
14
|
+
fill="blue"
|
15
|
+
orient="auto">
|
16
|
+
<path d="M 0 0 L 20 5 L 0 10 z" />
|
17
|
+
</marker>
|
18
|
+
</g>
|
19
|
+
</defs>
|
20
|
+
<rect x="10" y="10" width="3980" height="1980" fill="none" stroke="blue" stroke-width="10" />
|
21
|
+
<path d="M 1000 750 L 2000 750 L 2500 1250"
|
22
|
+
fill="none" stroke="green" stroke-width="100"
|
23
|
+
marker-mid="url(#Triangle)" />
|
24
|
+
|
25
|
+
<g transform="scale(12) translate(50 40)">
|
26
|
+
<path d="M10 80 Q 52.5 10, 95 80 L 115 80 T 180 80" stroke="yellow" fill="none" stroke-width="8"
|
27
|
+
marker-start="url(#Triangle)"
|
28
|
+
marker-mid="url(#Triangle)"
|
29
|
+
marker-end="url(#Triangle)" />
|
30
|
+
</g>
|
31
|
+
|
32
|
+
</svg>
|
@@ -1,17 +1,37 @@
|
|
1
1
|
<?xml version="1.0" standalone="no"?>
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
4
|
<svg width="12cm" height="4cm" viewBox="0 0 1200 400"
|
5
5
|
xmlns="http://www.w3.org/2000/svg" version="1.1">
|
6
|
+
<defs>
|
7
|
+
<marker id="a"
|
8
|
+
viewBox="0 0 20 20" refX="0" refY="5"
|
9
|
+
markerUnits="strokeWidth"
|
10
|
+
markerWidth="4" markerHeight="3"
|
11
|
+
orient="auto">
|
12
|
+
<path d="M 0 0 L 20 5 L 0 10 z" fill="yellow" />
|
13
|
+
</marker>
|
14
|
+
<marker id="Triangle"
|
15
|
+
viewBox="0 0 20 20" refX="0" refY="5"
|
16
|
+
markerUnits="strokeWidth"
|
17
|
+
markerWidth="4" markerHeight="3"
|
18
|
+
orient="auto">
|
19
|
+
<path d="M 0 0 L 20 5 L 0 10 z" />
|
20
|
+
</marker>
|
21
|
+
<g stroke="red" fill="none" stroke-dasharray="3 3" stroke-opacity="0.3">
|
22
|
+
</g>
|
23
|
+
</defs>
|
6
24
|
<desc>Example polygon01 - star and hexagon</desc>
|
7
25
|
<!-- Show outline of canvas using 'rect' element -->
|
8
26
|
<rect x="1" y="1" width="1198" height="398"
|
9
27
|
fill="none" stroke="blue" stroke-width="2" />
|
10
|
-
<polygon fill="red" stroke="blue" stroke-width="10"
|
28
|
+
<polygon fill="red" stroke="blue" stroke-width="10"
|
11
29
|
points="350,75 379,161 469,161 397,215
|
12
30
|
423,301 350,250 277,301 303,215
|
13
|
-
231,161 321,161"
|
14
|
-
|
31
|
+
231,161 321,161"
|
32
|
+
marker-mid="url(#Triangle)" marker-start="url(#a)" marker-end="url(#a)" />
|
33
|
+
<polygon fill="lime" stroke="blue" stroke-width="10"
|
15
34
|
points="850,75 958,137.5 958,262.5
|
16
|
-
850,325 742,262.6 742,137.5"
|
35
|
+
850,325 742,262.6 742,137.5"
|
36
|
+
marker-mid="url(#Triangle)" marker-start="url(#a)" marker-end="url(#a)" />
|
17
37
|
</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.24.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-
|
11
|
+
date: 2016-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|
@@ -90,12 +90,10 @@ files:
|
|
90
90
|
- lib/prawn-svg.rb
|
91
91
|
- lib/prawn/svg/attributes.rb
|
92
92
|
- lib/prawn/svg/attributes/clip_path.rb
|
93
|
-
- lib/prawn/svg/attributes/color.rb
|
94
|
-
- lib/prawn/svg/attributes/display.rb
|
95
|
-
- lib/prawn/svg/attributes/font.rb
|
96
93
|
- lib/prawn/svg/attributes/opacity.rb
|
97
94
|
- lib/prawn/svg/attributes/stroke.rb
|
98
95
|
- lib/prawn/svg/attributes/transform.rb
|
96
|
+
- lib/prawn/svg/calculators/arc_to_bezier_curve.rb
|
99
97
|
- lib/prawn/svg/calculators/aspect_ratio.rb
|
100
98
|
- lib/prawn/svg/calculators/document_sizing.rb
|
101
99
|
- lib/prawn/svg/calculators/pixels.rb
|
@@ -111,6 +109,7 @@ files:
|
|
111
109
|
- lib/prawn/svg/elements/ignored.rb
|
112
110
|
- lib/prawn/svg/elements/image.rb
|
113
111
|
- lib/prawn/svg/elements/line.rb
|
112
|
+
- lib/prawn/svg/elements/marker.rb
|
114
113
|
- lib/prawn/svg/elements/path.rb
|
115
114
|
- lib/prawn/svg/elements/polygon.rb
|
116
115
|
- lib/prawn/svg/elements/polyline.rb
|
@@ -126,13 +125,14 @@ files:
|
|
126
125
|
- lib/prawn/svg/loaders/data.rb
|
127
126
|
- lib/prawn/svg/loaders/file.rb
|
128
127
|
- lib/prawn/svg/loaders/web.rb
|
128
|
+
- lib/prawn/svg/pathable.rb
|
129
|
+
- lib/prawn/svg/properties.rb
|
129
130
|
- lib/prawn/svg/state.rb
|
130
131
|
- lib/prawn/svg/ttf.rb
|
131
132
|
- lib/prawn/svg/url_loader.rb
|
132
133
|
- lib/prawn/svg/version.rb
|
133
134
|
- prawn-svg.gemspec
|
134
135
|
- spec/integration_spec.rb
|
135
|
-
- spec/prawn/svg/attributes/font_spec.rb
|
136
136
|
- spec/prawn/svg/attributes/transform_spec.rb
|
137
137
|
- spec/prawn/svg/calculators/aspect_ratio_spec.rb
|
138
138
|
- spec/prawn/svg/calculators/document_sizing_spec.rb
|
@@ -141,7 +141,11 @@ files:
|
|
141
141
|
- spec/prawn/svg/document_spec.rb
|
142
142
|
- spec/prawn/svg/elements/base_spec.rb
|
143
143
|
- spec/prawn/svg/elements/gradient_spec.rb
|
144
|
+
- spec/prawn/svg/elements/line_spec.rb
|
145
|
+
- spec/prawn/svg/elements/marker_spec.rb
|
144
146
|
- spec/prawn/svg/elements/path_spec.rb
|
147
|
+
- spec/prawn/svg/elements/polygon_spec.rb
|
148
|
+
- spec/prawn/svg/elements/polyline_spec.rb
|
145
149
|
- spec/prawn/svg/elements/style_spec.rb
|
146
150
|
- spec/prawn/svg/elements/text_spec.rb
|
147
151
|
- spec/prawn/svg/font_registry_spec.rb
|
@@ -150,12 +154,15 @@ files:
|
|
150
154
|
- spec/prawn/svg/loaders/data_spec.rb
|
151
155
|
- spec/prawn/svg/loaders/file_spec.rb
|
152
156
|
- spec/prawn/svg/loaders/web_spec.rb
|
157
|
+
- spec/prawn/svg/pathable_spec.rb
|
158
|
+
- spec/prawn/svg/properties_spec.rb
|
153
159
|
- spec/prawn/svg/ttf_spec.rb
|
154
160
|
- spec/prawn/svg/url_loader_spec.rb
|
155
161
|
- spec/sample_images/mushroom-long.jpg
|
156
162
|
- spec/sample_images/mushroom-wide.jpg
|
157
163
|
- spec/sample_output/directory
|
158
164
|
- spec/sample_svg/arcs01.svg
|
165
|
+
- spec/sample_svg/arrows.svg
|
159
166
|
- spec/sample_svg/cap_styles.svg
|
160
167
|
- spec/sample_svg/circle01.svg
|
161
168
|
- spec/sample_svg/clip_path.svg
|
@@ -174,6 +181,7 @@ files:
|
|
174
181
|
- spec/sample_svg/image02_base64.svg
|
175
182
|
- spec/sample_svg/image03.svg
|
176
183
|
- spec/sample_svg/line01.svg
|
184
|
+
- spec/sample_svg/marker.svg
|
177
185
|
- spec/sample_svg/maths.svg
|
178
186
|
- spec/sample_svg/matrix_transform.svg
|
179
187
|
- spec/sample_svg/matrix_transform_3.svg
|
@@ -225,13 +233,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
225
233
|
version: '0'
|
226
234
|
requirements: []
|
227
235
|
rubyforge_project:
|
228
|
-
rubygems_version: 2.
|
236
|
+
rubygems_version: 2.5.1
|
229
237
|
signing_key:
|
230
238
|
specification_version: 4
|
231
239
|
summary: SVG renderer for Prawn PDF library
|
232
240
|
test_files:
|
233
241
|
- spec/integration_spec.rb
|
234
|
-
- spec/prawn/svg/attributes/font_spec.rb
|
235
242
|
- spec/prawn/svg/attributes/transform_spec.rb
|
236
243
|
- spec/prawn/svg/calculators/aspect_ratio_spec.rb
|
237
244
|
- spec/prawn/svg/calculators/document_sizing_spec.rb
|
@@ -240,7 +247,11 @@ test_files:
|
|
240
247
|
- spec/prawn/svg/document_spec.rb
|
241
248
|
- spec/prawn/svg/elements/base_spec.rb
|
242
249
|
- spec/prawn/svg/elements/gradient_spec.rb
|
250
|
+
- spec/prawn/svg/elements/line_spec.rb
|
251
|
+
- spec/prawn/svg/elements/marker_spec.rb
|
243
252
|
- spec/prawn/svg/elements/path_spec.rb
|
253
|
+
- spec/prawn/svg/elements/polygon_spec.rb
|
254
|
+
- spec/prawn/svg/elements/polyline_spec.rb
|
244
255
|
- spec/prawn/svg/elements/style_spec.rb
|
245
256
|
- spec/prawn/svg/elements/text_spec.rb
|
246
257
|
- spec/prawn/svg/font_registry_spec.rb
|
@@ -249,12 +260,15 @@ test_files:
|
|
249
260
|
- spec/prawn/svg/loaders/data_spec.rb
|
250
261
|
- spec/prawn/svg/loaders/file_spec.rb
|
251
262
|
- spec/prawn/svg/loaders/web_spec.rb
|
263
|
+
- spec/prawn/svg/pathable_spec.rb
|
264
|
+
- spec/prawn/svg/properties_spec.rb
|
252
265
|
- spec/prawn/svg/ttf_spec.rb
|
253
266
|
- spec/prawn/svg/url_loader_spec.rb
|
254
267
|
- spec/sample_images/mushroom-long.jpg
|
255
268
|
- spec/sample_images/mushroom-wide.jpg
|
256
269
|
- spec/sample_output/directory
|
257
270
|
- spec/sample_svg/arcs01.svg
|
271
|
+
- spec/sample_svg/arrows.svg
|
258
272
|
- spec/sample_svg/cap_styles.svg
|
259
273
|
- spec/sample_svg/circle01.svg
|
260
274
|
- spec/sample_svg/clip_path.svg
|
@@ -273,6 +287,7 @@ test_files:
|
|
273
287
|
- spec/sample_svg/image02_base64.svg
|
274
288
|
- spec/sample_svg/image03.svg
|
275
289
|
- spec/sample_svg/line01.svg
|
290
|
+
- spec/sample_svg/marker.svg
|
276
291
|
- spec/sample_svg/maths.svg
|
277
292
|
- spec/sample_svg/matrix_transform.svg
|
278
293
|
- spec/sample_svg/matrix_transform_3.svg
|