prawn_hebrew 0.1.3 → 0.1.4
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 +4 -4
- data/lib/prawn_hebrew.rb +21 -29
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 62db7c69cd7c2e1252b867a77a7149cb529c804a58e1487bf70baf2d4b069ec6
|
|
4
|
+
data.tar.gz: b330b9b04cbec401d31fda50971e26b5eda97c213fd62db46a6f47b3fd4027cf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a7e3d327abda1b5a64e81d95cbbded4c5592ac9401a66630073dbc1a2dd2f2e940a868f2924f609ddbf43157fb55f5cc2c3c3f52d48d640b65ef4fcfa1a527b2
|
|
7
|
+
data.tar.gz: 1734fa4415c8b42148ea2a939b3066a8c0f3662fd07bed346da3ae2df147151282fc3a9b7ff673dc7fdb61d259f7b02b467ae22951092c9429478d21e17e1d3e
|
data/lib/prawn_hebrew.rb
CHANGED
|
@@ -160,64 +160,56 @@ module PrawnHebrew
|
|
|
160
160
|
char_spacing, leading, min_font_size, rotation, box_opts)
|
|
161
161
|
min_size = min_font_size || 5
|
|
162
162
|
current_size = initial_size
|
|
163
|
+
fitting_size = nil
|
|
163
164
|
|
|
164
|
-
#
|
|
165
|
+
# Find the largest font size that fits by testing with dry_run
|
|
165
166
|
while current_size >= min_size
|
|
166
|
-
# Create a copy of box_opts to test rendering
|
|
167
|
-
test_opts = box_opts.dup
|
|
168
|
-
|
|
169
|
-
# Try rendering at current size
|
|
170
167
|
fragments = hebrew_formatted_text(text, size: current_size, style: style,
|
|
171
168
|
hebrew_font: hebrew_font,
|
|
172
169
|
english_font: english_font)
|
|
173
170
|
|
|
171
|
+
test_opts = box_opts.dup
|
|
174
172
|
test_opts[:leading] = leading if leading > 0
|
|
175
173
|
|
|
176
|
-
# Test if it fits
|
|
177
|
-
|
|
174
|
+
# Test if it fits without actually rendering
|
|
175
|
+
overflow_text = character_spacing(char_spacing) do
|
|
178
176
|
if rotation != 0
|
|
179
177
|
rotate(rotation, origin: test_opts[:at] || [0, 0]) do
|
|
180
|
-
|
|
181
|
-
result.empty? || result == ""
|
|
178
|
+
formatted_text_box(fragments, test_opts.merge(dry_run: true))
|
|
182
179
|
end
|
|
183
180
|
else
|
|
184
|
-
|
|
185
|
-
result.empty? || result == ""
|
|
181
|
+
formatted_text_box(fragments, test_opts.merge(dry_run: true))
|
|
186
182
|
end
|
|
187
183
|
end
|
|
188
184
|
|
|
189
|
-
# If
|
|
190
|
-
if
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
rotate(rotation, origin: box_opts[:at] || [0, 0]) do
|
|
194
|
-
formatted_text_box(fragments, box_opts.merge(leading: leading > 0 ? leading : nil).compact)
|
|
195
|
-
end
|
|
196
|
-
else
|
|
197
|
-
formatted_text_box(fragments, box_opts.merge(leading: leading > 0 ? leading : nil).compact)
|
|
198
|
-
end
|
|
199
|
-
end
|
|
200
|
-
return
|
|
185
|
+
# If overflow_text is empty or nil, the text fits
|
|
186
|
+
if overflow_text.nil? || overflow_text.empty? || overflow_text == ""
|
|
187
|
+
fitting_size = current_size
|
|
188
|
+
break
|
|
201
189
|
end
|
|
202
190
|
|
|
203
191
|
# Reduce font size and try again
|
|
204
192
|
current_size -= 0.5
|
|
205
193
|
end
|
|
206
194
|
|
|
207
|
-
#
|
|
208
|
-
|
|
195
|
+
# Use the fitting size, or min_size if nothing fit
|
|
196
|
+
final_size = fitting_size || min_size
|
|
197
|
+
|
|
198
|
+
# Now render once with the final size
|
|
199
|
+
fragments = hebrew_formatted_text(text, size: final_size, style: style,
|
|
209
200
|
hebrew_font: hebrew_font,
|
|
210
201
|
english_font: english_font)
|
|
211
202
|
|
|
212
|
-
|
|
203
|
+
render_opts = box_opts.dup
|
|
204
|
+
render_opts[:leading] = leading if leading > 0
|
|
213
205
|
|
|
214
206
|
character_spacing(char_spacing) do
|
|
215
207
|
if rotation != 0
|
|
216
|
-
rotate(rotation, origin:
|
|
217
|
-
formatted_text_box(fragments,
|
|
208
|
+
rotate(rotation, origin: render_opts[:at] || [0, 0]) do
|
|
209
|
+
formatted_text_box(fragments, render_opts)
|
|
218
210
|
end
|
|
219
211
|
else
|
|
220
|
-
formatted_text_box(fragments,
|
|
212
|
+
formatted_text_box(fragments, render_opts)
|
|
221
213
|
end
|
|
222
214
|
end
|
|
223
215
|
end
|
data/lib/version.rb
CHANGED