ea 0.6.46 → 0.6.48
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
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2849c4fcd1a87fd920fd29fa74dd2bd7cdec74bdebc514f84153de46fb9ca0a9
|
|
4
|
+
data.tar.gz: 0a6bd43f0e3e174964d071ea4451cdc0ab2e8c1da69dd734e5293aa04637d764
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 85d3e1fab3fb06c9545f40377460e4e493befab70c82aad96905b556c8fb2e2d5d384f31b49465892a3a49dd5d6c0d932b8eff0c666e34503cf7da2ba722faf1
|
|
7
|
+
data.tar.gz: 10f16708d46732be552481c56386f97df796edb6a779fe50c76ba5a76204f156759c35c15e0763eef88f768627cccc2374d7ac1629c24dcb607351db8046f918
|
|
@@ -26,27 +26,35 @@ module Ea
|
|
|
26
26
|
# cumulative integer textLength fits bounds.width - 15.
|
|
27
27
|
# Verified against EA-published reference SVGs.
|
|
28
28
|
def wrapped_lines(context, body)
|
|
29
|
-
|
|
29
|
+
# EA's note wrap padding is 4: lines fit bounds.width - 4
|
|
30
|
+
# (9BA1CE54: width 214, longest line tl 210). Pitch and
|
|
31
|
+
# first-line offset scale with the note font (9pt: pitch
|
|
32
|
+
# 16 = size+7, first line at bounds.y + 18 = size+9), and
|
|
33
|
+
# each paragraph break adds one blank pitch row
|
|
34
|
+
# (paragraph 2 starts 32 after the last line of
|
|
35
|
+
# paragraph 1).
|
|
36
|
+
usable = context.bounds.width - 4
|
|
30
37
|
size = context.size
|
|
31
38
|
family = context.family
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
pitch = size + 7
|
|
40
|
+
first_offset = size + 9
|
|
41
|
+
y_index = 0
|
|
42
|
+
paragraphs = body.to_s.split(/\n/).reject { |p| p.strip.empty? }
|
|
43
|
+
paragraphs.flat_map do |para|
|
|
44
|
+
lines = wrap_paragraph(para, usable, size, context.family)
|
|
45
|
+
lines.each_with_index.map do |line, i|
|
|
46
|
+
y = context.bounds.y + first_offset + ((y_index + i) * pitch)
|
|
47
|
+
TextRenderer.new(
|
|
48
|
+
content: line,
|
|
49
|
+
x: context.bounds.x + context.theme.note.text_x_offset,
|
|
50
|
+
y: y,
|
|
51
|
+
family: context.family, size: context.size,
|
|
52
|
+
size_unit: context.size_unit,
|
|
53
|
+
fill: context.theme.text_color,
|
|
54
|
+
stroke_in_text: context.theme.stroke_in_text_color,
|
|
55
|
+
width_factor: context.theme.text_width_factor
|
|
56
|
+
).to_svg
|
|
57
|
+
end.tap { y_index += lines.size + 1 }
|
|
50
58
|
end
|
|
51
59
|
end
|
|
52
60
|
|
|
@@ -104,16 +104,19 @@ module Ea
|
|
|
104
104
|
attr_bottom_y + size + 5
|
|
105
105
|
end
|
|
106
106
|
|
|
107
|
+
# EA's op block: first row 21 below the last attribute row
|
|
108
|
+
# (9pt... 7pt: attr_bottom + 21), uniform 13px pitch across
|
|
109
|
+
# attrs AND ops (6D4C665D: attrs ..520, ops 541..658 step 13).
|
|
107
110
|
def op_first_y
|
|
108
111
|
return nil unless op_lines_count&.positive?
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
attr_bottom_y + size + 14
|
|
111
114
|
end
|
|
112
115
|
|
|
113
116
|
def op_bottom_y
|
|
114
117
|
return op_divider_y unless op_lines_count&.positive?
|
|
115
118
|
|
|
116
|
-
op_first_y + (op_lines_count - 1) * (size +
|
|
119
|
+
op_first_y + (op_lines_count - 1) * (size + 6)
|
|
117
120
|
end
|
|
118
121
|
|
|
119
122
|
# EA draws a single divider under the header and seats
|
|
@@ -17,7 +17,9 @@ module Ea
|
|
|
17
17
|
CONTENT_X_OFFSET = 20
|
|
18
18
|
|
|
19
19
|
def self.render(operations, bounds:, first_y:, family:, size:)
|
|
20
|
-
|
|
20
|
+
# EA's op rows pitch 13 (size + 6), same as attribute
|
|
21
|
+
# rows (6D4C665D: ops 541..658 step 13).
|
|
22
|
+
line_h = size + 6
|
|
21
23
|
text_blocks = []
|
|
22
24
|
has_receptions = operations.any?(&:is_reception)
|
|
23
25
|
if has_receptions
|
data/lib/ea/version.rb
CHANGED