prawn-svg 0.27.0 → 0.27.1
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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78e98b74bfb10e36c2de7a051662546c98ddcfa5
|
4
|
+
data.tar.gz: 9fe692aebb49298a976f9436141c9bf9f4e3b750
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bca8bd9a84bb372434d0a6aac7911c13e097fbdc30e788c9dad883a922237b384cc6f9786a3992193bd46ee47e562274bbe5e7f39a7ad6eba0a9311422e40c24
|
7
|
+
data.tar.gz: 67af84522eb27d03b18afa2d9f6309b4a2588f411ddf123681dd69bf34992a85c2aab62946d87ab025bb12c66df3e2189b3543c5eba4e79c4de691003206696b
|
@@ -28,14 +28,25 @@ module Prawn::SVG::Calculators
|
|
28
28
|
container_width = @requested_width || @bounds[0]
|
29
29
|
container_height = @requested_height || @bounds[1]
|
30
30
|
|
31
|
-
@output_width = Pixels::Measurement.to_pixels(@document_width ||
|
32
|
-
@output_height = Pixels::Measurement.to_pixels(@document_height ||
|
31
|
+
@output_width = Pixels::Measurement.to_pixels(@document_width || @requested_width, container_width)
|
32
|
+
@output_height = Pixels::Measurement.to_pixels(@document_height || @requested_height, container_height)
|
33
33
|
|
34
34
|
if @view_box
|
35
35
|
values = @view_box.strip.split(Prawn::SVG::Elements::COMMA_WSP_REGEXP)
|
36
36
|
@x_offset, @y_offset, @viewport_width, @viewport_height = values.map {|value| value.to_f}
|
37
37
|
|
38
38
|
if @viewport_width > 0 && @viewport_height > 0
|
39
|
+
# If neither the width nor height was specified, use the entire space available
|
40
|
+
if @output_width.nil? && @output_height.nil?
|
41
|
+
@output_width = container_width
|
42
|
+
@output_height = container_height
|
43
|
+
end
|
44
|
+
|
45
|
+
# If one of the output dimensions is missing, calculate it from the other one
|
46
|
+
# using the ratio of the viewport width to height.
|
47
|
+
@output_width ||= @output_height * @viewport_width / @viewport_height
|
48
|
+
@output_height ||= @output_width * @viewport_height / @viewport_width
|
49
|
+
|
39
50
|
aspect = AspectRatio.new(@preserve_aspect_ratio, [@output_width, @output_height], [@viewport_width, @viewport_height])
|
40
51
|
@x_scale = aspect.width / @viewport_width
|
41
52
|
@y_scale = aspect.height / @viewport_height
|
@@ -43,6 +54,9 @@ module Prawn::SVG::Calculators
|
|
43
54
|
@y_offset -= aspect.y / @y_scale
|
44
55
|
end
|
45
56
|
else
|
57
|
+
@output_width ||= container_width
|
58
|
+
@output_height ||= container_height
|
59
|
+
|
46
60
|
@viewport_width = @output_width
|
47
61
|
@viewport_height = @output_height
|
48
62
|
end
|
data/lib/prawn/svg/version.rb
CHANGED
@@ -113,6 +113,34 @@ describe Prawn::SVG::Calculators::DocumentSizing do
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
+
context "when a viewBox and a requested width is supplied" do
|
117
|
+
let(:attributes) { {"viewBox" => "0 0 100 200"} }
|
118
|
+
|
119
|
+
it "uses the requested width and calculates the height based on the viewBox" do
|
120
|
+
sizing.requested_width = 550
|
121
|
+
sizing.calculate
|
122
|
+
|
123
|
+
expect(sizing.viewport_width).to eq 100
|
124
|
+
expect(sizing.viewport_height).to eq 200
|
125
|
+
expect(sizing.output_width).to eq 550
|
126
|
+
expect(sizing.output_height).to eq 1100
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
context "when a viewBox and a requested height is supplied" do
|
131
|
+
let(:attributes) { {"viewBox" => "0 0 100 200"} }
|
132
|
+
|
133
|
+
it "uses the requested height and calculates the width based on the viewBox" do
|
134
|
+
sizing.requested_height = 400
|
135
|
+
sizing.calculate
|
136
|
+
|
137
|
+
expect(sizing.viewport_width).to eq 100
|
138
|
+
expect(sizing.viewport_height).to eq 200
|
139
|
+
expect(sizing.output_width).to eq 200
|
140
|
+
expect(sizing.output_height).to eq 400
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
116
144
|
context "when neither viewBox nor requested width/height specified" do
|
117
145
|
let(:attributes) { {} }
|
118
146
|
|
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.27.
|
4
|
+
version: 0.27.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Nesbitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: prawn
|