prawn 2.1.0 → 2.3.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 (280) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/GPLv2 +20 -21
  5. data/Gemfile +3 -9
  6. data/Rakefile +20 -23
  7. data/lib/prawn.rb +36 -49
  8. data/lib/prawn/document.rb +180 -133
  9. data/lib/prawn/document/bounding_box.rb +41 -29
  10. data/lib/prawn/document/column_box.rb +7 -7
  11. data/lib/prawn/document/internals.rb +8 -6
  12. data/lib/prawn/document/span.rb +21 -16
  13. data/lib/prawn/encoding.rb +69 -68
  14. data/lib/prawn/errors.rb +12 -7
  15. data/lib/prawn/font.rb +102 -69
  16. data/lib/prawn/font_metric_cache.rb +14 -8
  17. data/lib/prawn/{font → fonts}/afm.rb +102 -68
  18. data/lib/prawn/{font → fonts}/dfont.rb +5 -11
  19. data/lib/prawn/fonts/otf.rb +11 -0
  20. data/lib/prawn/fonts/ttc.rb +36 -0
  21. data/lib/prawn/{font → fonts}/ttf.rb +87 -68
  22. data/lib/prawn/graphics.rb +119 -81
  23. data/lib/prawn/graphics/blend_mode.rb +9 -8
  24. data/lib/prawn/graphics/cap_style.rb +3 -3
  25. data/lib/prawn/graphics/color.rb +27 -25
  26. data/lib/prawn/graphics/dash.rb +23 -11
  27. data/lib/prawn/graphics/join_style.rb +9 -3
  28. data/lib/prawn/graphics/patterns.rb +190 -96
  29. data/lib/prawn/graphics/transformation.rb +15 -9
  30. data/lib/prawn/graphics/transparency.rb +17 -13
  31. data/lib/prawn/grid.rb +48 -47
  32. data/lib/prawn/image_handler.rb +5 -5
  33. data/lib/prawn/images.rb +39 -30
  34. data/lib/prawn/images/image.rb +2 -1
  35. data/lib/prawn/images/jpg.rb +28 -22
  36. data/lib/prawn/images/png.rb +65 -62
  37. data/lib/prawn/measurement_extensions.rb +10 -9
  38. data/lib/prawn/measurements.rb +19 -15
  39. data/lib/prawn/outline.rb +97 -77
  40. data/lib/prawn/repeater.rb +14 -10
  41. data/lib/prawn/security.rb +81 -61
  42. data/lib/prawn/security/arcfour.rb +2 -2
  43. data/lib/prawn/soft_mask.rb +26 -26
  44. data/lib/prawn/stamp.rb +20 -13
  45. data/lib/prawn/text.rb +68 -52
  46. data/lib/prawn/text/box.rb +11 -8
  47. data/lib/prawn/text/formatted.rb +5 -5
  48. data/lib/prawn/text/formatted/arranger.rb +53 -32
  49. data/lib/prawn/text/formatted/box.rb +134 -100
  50. data/lib/prawn/text/formatted/fragment.rb +11 -14
  51. data/lib/prawn/text/formatted/line_wrap.rb +122 -63
  52. data/lib/prawn/text/formatted/parser.rb +139 -117
  53. data/lib/prawn/text/formatted/wrap.rb +43 -31
  54. data/lib/prawn/transformation_stack.rb +7 -5
  55. data/lib/prawn/utilities.rb +7 -22
  56. data/lib/prawn/version.rb +2 -2
  57. data/lib/prawn/view.rb +17 -7
  58. data/manual/basic_concepts/adding_pages.rb +6 -7
  59. data/manual/basic_concepts/basic_concepts.rb +31 -22
  60. data/manual/basic_concepts/creation.rb +10 -11
  61. data/manual/basic_concepts/cursor.rb +4 -5
  62. data/manual/basic_concepts/measurement.rb +6 -7
  63. data/manual/basic_concepts/origin.rb +5 -6
  64. data/manual/basic_concepts/other_cursor_helpers.rb +11 -12
  65. data/manual/basic_concepts/view.rb +22 -16
  66. data/manual/bounding_box/bounding_box.rb +29 -24
  67. data/manual/bounding_box/bounds.rb +11 -12
  68. data/manual/bounding_box/canvas.rb +4 -5
  69. data/manual/bounding_box/creation.rb +6 -7
  70. data/manual/bounding_box/indentation.rb +14 -15
  71. data/manual/bounding_box/nesting.rb +24 -17
  72. data/manual/bounding_box/russian_boxes.rb +14 -13
  73. data/manual/bounding_box/stretchy.rb +12 -13
  74. data/manual/contents.rb +28 -22
  75. data/manual/cover.rb +33 -28
  76. data/manual/document_and_page_options/background.rb +11 -13
  77. data/manual/document_and_page_options/document_and_page_options.rb +25 -20
  78. data/manual/document_and_page_options/metadata.rb +18 -16
  79. data/manual/document_and_page_options/page_margins.rb +18 -20
  80. data/manual/document_and_page_options/page_size.rb +13 -12
  81. data/manual/document_and_page_options/print_scaling.rb +17 -15
  82. data/manual/example_helper.rb +5 -4
  83. data/manual/graphics/blend_mode.rb +12 -9
  84. data/manual/graphics/circle_and_ellipse.rb +4 -5
  85. data/manual/graphics/color.rb +7 -9
  86. data/manual/graphics/common_lines.rb +7 -8
  87. data/manual/graphics/fill_and_stroke.rb +4 -5
  88. data/manual/graphics/fill_rules.rb +9 -10
  89. data/manual/graphics/gradients.rb +27 -21
  90. data/manual/graphics/graphics.rb +48 -40
  91. data/manual/graphics/helper.rb +12 -9
  92. data/manual/graphics/line_width.rb +8 -7
  93. data/manual/graphics/lines_and_curves.rb +7 -8
  94. data/manual/graphics/polygon.rb +6 -8
  95. data/manual/graphics/rectangle.rb +4 -5
  96. data/manual/graphics/rotate.rb +6 -7
  97. data/manual/graphics/scale.rb +14 -15
  98. data/manual/graphics/soft_masks.rb +3 -4
  99. data/manual/graphics/stroke_cap.rb +6 -7
  100. data/manual/graphics/stroke_dash.rb +11 -12
  101. data/manual/graphics/stroke_join.rb +5 -6
  102. data/manual/graphics/translate.rb +9 -10
  103. data/manual/graphics/transparency.rb +7 -8
  104. data/manual/how_to_read_this_manual.rb +6 -6
  105. data/manual/images/absolute_position.rb +6 -7
  106. data/manual/images/fit.rb +7 -8
  107. data/manual/images/horizontal.rb +9 -10
  108. data/manual/images/images.rb +28 -24
  109. data/manual/images/plain_image.rb +5 -6
  110. data/manual/images/scale.rb +9 -10
  111. data/manual/images/vertical.rb +13 -14
  112. data/manual/images/width_and_height.rb +10 -11
  113. data/manual/layout/boxes.rb +5 -6
  114. data/manual/layout/content.rb +7 -8
  115. data/manual/layout/layout.rb +18 -16
  116. data/manual/layout/simple_grid.rb +6 -7
  117. data/manual/outline/add_subsection_to.rb +20 -21
  118. data/manual/outline/insert_section_after.rb +15 -16
  119. data/manual/outline/outline.rb +21 -17
  120. data/manual/outline/sections_and_pages.rb +17 -18
  121. data/manual/repeatable_content/alternate_page_numbering.rb +21 -17
  122. data/manual/repeatable_content/page_numbering.rb +17 -16
  123. data/manual/repeatable_content/repeatable_content.rb +25 -19
  124. data/manual/repeatable_content/repeater.rb +14 -15
  125. data/manual/repeatable_content/stamp.rb +14 -15
  126. data/manual/security/encryption.rb +9 -10
  127. data/manual/security/permissions.rb +19 -14
  128. data/manual/security/security.rb +19 -16
  129. data/manual/table.rb +3 -3
  130. data/manual/text/alignment.rb +16 -17
  131. data/manual/text/color.rb +12 -11
  132. data/manual/text/column_box.rb +9 -10
  133. data/manual/text/fallback_fonts.rb +25 -21
  134. data/manual/text/font.rb +11 -12
  135. data/manual/text/font_size.rb +13 -14
  136. data/manual/text/font_style.rb +7 -8
  137. data/manual/text/formatted_callbacks.rb +25 -21
  138. data/manual/text/formatted_text.rb +33 -25
  139. data/manual/text/free_flowing_text.rb +20 -21
  140. data/manual/text/inline.rb +18 -19
  141. data/manual/text/kerning_and_character_spacing.rb +14 -15
  142. data/manual/text/leading.rb +7 -8
  143. data/manual/text/line_wrapping.rb +37 -18
  144. data/manual/text/paragraph_indentation.rb +13 -14
  145. data/manual/text/positioned_text.rb +15 -16
  146. data/manual/text/registering_families.rb +20 -21
  147. data/manual/text/rendering_and_color.rb +9 -10
  148. data/manual/text/right_to_left_text.rb +26 -19
  149. data/manual/text/rotation.rb +28 -23
  150. data/manual/text/single_usage.rb +8 -9
  151. data/manual/text/text.rb +57 -52
  152. data/manual/text/text_box_excess.rb +20 -17
  153. data/manual/text/text_box_extensions.rb +18 -15
  154. data/manual/text/text_box_overflow.rb +18 -19
  155. data/manual/text/utf8.rb +11 -12
  156. data/manual/text/win_ansi_charset.rb +21 -19
  157. data/prawn.gemspec +44 -31
  158. data/spec/extensions/encoding_helpers.rb +3 -3
  159. data/spec/prawn/document/bounding_box_spec.rb +546 -0
  160. data/spec/prawn/document/column_box_spec.rb +75 -0
  161. data/spec/prawn/document/security_spec.rb +176 -0
  162. data/spec/prawn/document_annotations_spec.rb +76 -0
  163. data/spec/prawn/document_destinations_spec.rb +15 -0
  164. data/spec/prawn/document_grid_spec.rb +99 -0
  165. data/spec/prawn/document_reference_spec.rb +27 -0
  166. data/spec/prawn/document_span_spec.rb +36 -0
  167. data/spec/prawn/document_spec.rb +802 -0
  168. data/spec/prawn/font_metric_cache_spec.rb +54 -0
  169. data/spec/prawn/font_spec.rb +542 -0
  170. data/spec/prawn/graphics/blend_mode_spec.rb +63 -0
  171. data/spec/prawn/graphics/transparency_spec.rb +81 -0
  172. data/spec/prawn/graphics_spec.rb +837 -0
  173. data/spec/prawn/graphics_stroke_styles_spec.rb +229 -0
  174. data/spec/{image_handler_spec.rb → prawn/image_handler_spec.rb} +14 -14
  175. data/spec/prawn/images/jpg_spec.rb +20 -0
  176. data/spec/prawn/images/png_spec.rb +283 -0
  177. data/spec/prawn/images_spec.rb +224 -0
  178. data/spec/prawn/measurements_extensions_spec.rb +24 -0
  179. data/spec/prawn/outline_spec.rb +412 -0
  180. data/spec/prawn/repeater_spec.rb +165 -0
  181. data/spec/prawn/soft_mask_spec.rb +74 -0
  182. data/spec/prawn/stamp_spec.rb +172 -0
  183. data/spec/prawn/text/box_spec.rb +1112 -0
  184. data/spec/prawn/text/formatted/arranger_spec.rb +466 -0
  185. data/spec/prawn/text/formatted/box_spec.rb +846 -0
  186. data/spec/prawn/text/formatted/fragment_spec.rb +343 -0
  187. data/spec/prawn/text/formatted/line_wrap_spec.rb +494 -0
  188. data/spec/prawn/text/formatted/parser_spec.rb +697 -0
  189. data/spec/prawn/text_draw_text_spec.rb +149 -0
  190. data/spec/prawn/text_rendering_mode_spec.rb +48 -0
  191. data/spec/prawn/text_spacing_spec.rb +95 -0
  192. data/spec/prawn/text_spec.rb +603 -0
  193. data/spec/prawn/text_with_inline_formatting_spec.rb +35 -0
  194. data/spec/{transformation_stack_spec.rb → prawn/transformation_stack_spec.rb} +22 -19
  195. data/spec/prawn/view_spec.rb +63 -0
  196. data/spec/prawn_manual_spec.rb +35 -0
  197. data/spec/spec_helper.rb +18 -19
  198. metadata +144 -180
  199. metadata.gz.sig +4 -0
  200. data/data/images/16bit.alpha +0 -0
  201. data/data/images/16bit.color +0 -0
  202. data/data/images/16bit.png +0 -0
  203. data/data/images/arrow.png +0 -0
  204. data/data/images/arrow2.png +0 -0
  205. data/data/images/blend_modes_bottom_layer.jpg +0 -0
  206. data/data/images/blend_modes_top_layer.jpg +0 -0
  207. data/data/images/dice.alpha +0 -0
  208. data/data/images/dice.color +0 -0
  209. data/data/images/dice.png +0 -0
  210. data/data/images/dice_interlaced.png +0 -0
  211. data/data/images/fractal.jpg +0 -0
  212. data/data/images/indexed_color.dat +0 -0
  213. data/data/images/indexed_color.png +0 -0
  214. data/data/images/indexed_transparency.png +0 -0
  215. data/data/images/indexed_transparency_alpha.dat +0 -0
  216. data/data/images/indexed_transparency_color.dat +0 -0
  217. data/data/images/letterhead.jpg +0 -0
  218. data/data/images/license.md +0 -8
  219. data/data/images/page_white_text.alpha +0 -0
  220. data/data/images/page_white_text.color +0 -0
  221. data/data/images/page_white_text.png +0 -0
  222. data/data/images/pigs.jpg +0 -0
  223. data/data/images/prawn.png +0 -0
  224. data/data/images/ruport.png +0 -0
  225. data/data/images/ruport_data.dat +0 -0
  226. data/data/images/ruport_transparent.png +0 -0
  227. data/data/images/ruport_type0.png +0 -0
  228. data/data/images/stef.jpg +0 -0
  229. data/data/images/tru256.bmp +0 -0
  230. data/data/images/web-links.dat +0 -1
  231. data/data/images/web-links.png +0 -0
  232. data/data/pdfs/complex_template.pdf +0 -0
  233. data/data/pdfs/contains_ttf_font.pdf +0 -0
  234. data/data/pdfs/encrypted.pdf +0 -0
  235. data/data/pdfs/form.pdf +1 -819
  236. data/data/pdfs/hexagon.pdf +0 -61
  237. data/data/pdfs/indirect_reference.pdf +0 -86
  238. data/data/pdfs/multipage_template.pdf +0 -127
  239. data/data/pdfs/nested_pages.pdf +0 -118
  240. data/data/pdfs/page_without_mediabox.pdf +0 -193
  241. data/data/pdfs/resources_as_indirect_object.pdf +0 -83
  242. data/data/pdfs/two_hexagons.pdf +0 -90
  243. data/data/pdfs/version_1_6.pdf +0 -61
  244. data/data/shift_jis_text.txt +0 -1
  245. data/spec/acceptance/png_spec.rb +0 -35
  246. data/spec/annotations_spec.rb +0 -67
  247. data/spec/blend_mode_spec.rb +0 -71
  248. data/spec/bounding_box_spec.rb +0 -501
  249. data/spec/column_box_spec.rb +0 -59
  250. data/spec/destinations_spec.rb +0 -13
  251. data/spec/document_spec.rb +0 -738
  252. data/spec/font_metric_cache_spec.rb +0 -52
  253. data/spec/font_spec.rb +0 -475
  254. data/spec/formatted_text_arranger_spec.rb +0 -452
  255. data/spec/formatted_text_box_spec.rb +0 -716
  256. data/spec/formatted_text_fragment_spec.rb +0 -299
  257. data/spec/graphics_spec.rb +0 -705
  258. data/spec/grid_spec.rb +0 -95
  259. data/spec/images_spec.rb +0 -167
  260. data/spec/inline_formatted_text_parser_spec.rb +0 -568
  261. data/spec/jpg_spec.rb +0 -23
  262. data/spec/line_wrap_spec.rb +0 -366
  263. data/spec/measurement_units_spec.rb +0 -22
  264. data/spec/outline_spec.rb +0 -409
  265. data/spec/png_spec.rb +0 -257
  266. data/spec/reference_spec.rb +0 -25
  267. data/spec/repeater_spec.rb +0 -154
  268. data/spec/security_spec.rb +0 -151
  269. data/spec/soft_mask_spec.rb +0 -78
  270. data/spec/span_spec.rb +0 -43
  271. data/spec/stamp_spec.rb +0 -179
  272. data/spec/stroke_styles_spec.rb +0 -208
  273. data/spec/text_at_spec.rb +0 -142
  274. data/spec/text_box_spec.rb +0 -1042
  275. data/spec/text_rendering_mode_spec.rb +0 -45
  276. data/spec/text_spacing_spec.rb +0 -93
  277. data/spec/text_spec.rb +0 -543
  278. data/spec/text_with_inline_formatting_spec.rb +0 -35
  279. data/spec/transparency_spec.rb +0 -91
  280. data/spec/view_spec.rb +0 -42
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Prawn::Text do
6
+ let(:pdf) { create_pdf }
7
+
8
+ describe '#formatted_text' do
9
+ it 'draws text' do
10
+ string = 'hello world'
11
+ format_array = [text: string]
12
+ pdf.formatted_text(format_array)
13
+ # grab the text from the rendered PDF and ensure it matches
14
+ text = PDF::Inspector::Text.analyze(pdf.render)
15
+ expect(text.strings.first).to eq(string)
16
+ end
17
+ end
18
+
19
+ describe '#text with inline styling' do
20
+ it 'automatically moves to a new page if the tallest fragment' \
21
+ " on the next line won't fit in the available space" do
22
+ pdf.move_cursor_to(pdf.font.height)
23
+ formatted = "this contains <font size='24'>sized</font> text"
24
+ pdf.text(formatted, inline_format: true)
25
+ pages = PDF::Inspector::Page.analyze(pdf.render).pages
26
+ expect(pages.size).to eq(2)
27
+ end
28
+
29
+ it 'embeds links as literal strings' do
30
+ pdf.text "<link href='http://wiki.github.com/sandal/prawn/'>wiki</link>",
31
+ inline_format: true
32
+ expect(pdf.render).to match(%r{/URI\s+\(http://wiki\.github\.com})
33
+ end
34
+ end
35
+ end
@@ -1,22 +1,23 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- require File.join(File.expand_path(File.dirname(__FILE__)), "spec_helper")
3
+ require 'spec_helper'
4
4
 
5
5
  describe Prawn::TransformationStack do
6
- before { create_pdf }
7
- before { pdf.add_to_transformation_stack(2, 0, 0, 2, 100, 100) }
8
-
9
- let(:pdf) { @pdf }
10
- let(:stack) { @pdf.instance_variable_get(:@transformation_stack) }
6
+ let(:pdf) do
7
+ create_pdf do |document|
8
+ document.add_to_transformation_stack(2, 0, 0, 2, 100, 100)
9
+ end
10
+ end
11
+ let(:stack) { pdf.instance_variable_get(:@transformation_stack) }
11
12
 
12
- describe "#add_to_transformation_stack" do
13
- it "creates and adds to the stack" do
13
+ describe '#add_to_transformation_stack' do
14
+ it 'creates and adds to the stack' do
14
15
  pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
15
16
 
16
17
  expect(stack).to eq [[[2, 0, 0, 2, 100, 100], [1, 0, 0, 1, 20, 20]]]
17
18
  end
18
19
 
19
- it "adds to the last stack" do
20
+ it 'adds to the last stack' do
20
21
  pdf.save_transformation_stack
21
22
  pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
22
23
 
@@ -27,8 +28,8 @@ describe Prawn::TransformationStack do
27
28
  end
28
29
  end
29
30
 
30
- describe "#save_transformation_stack" do
31
- it "clones the last stack" do
31
+ describe '#save_transformation_stack' do
32
+ it 'clones the last stack' do
32
33
  pdf.save_transformation_stack
33
34
 
34
35
  expect(stack.length).to eq 2
@@ -37,8 +38,8 @@ describe Prawn::TransformationStack do
37
38
  end
38
39
  end
39
40
 
40
- describe "#restore_transformation_stack" do
41
- it "pops off the last stack" do
41
+ describe '#restore_transformation_stack' do
42
+ it 'pops off the last stack' do
42
43
  pdf.save_transformation_stack
43
44
  pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
44
45
  pdf.restore_transformation_stack
@@ -47,17 +48,19 @@ describe Prawn::TransformationStack do
47
48
  end
48
49
  end
49
50
 
50
- describe "current_transformation_matrix_with_translation" do
51
+ describe 'current_transformation_matrix_with_translation' do
51
52
  before do
52
53
  pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
53
54
  end
54
55
 
55
- it "calculates the last transformation" do
56
- expect(pdf.current_transformation_matrix_with_translation).to eq [2, 0, 0, 2, 140, 140]
56
+ it 'calculates the last transformation' do
57
+ expect(pdf.current_transformation_matrix_with_translation)
58
+ .to eq [2, 0, 0, 2, 140, 140]
57
59
  end
58
60
 
59
- it "adds the supplied x and y coordinates to the transformation stack" do
60
- expect(pdf.current_transformation_matrix_with_translation(15, 15)).to eq [2, 0, 0, 2, 170, 170]
61
+ it 'adds the supplied x and y coordinates to the transformation stack' do
62
+ expect(pdf.current_transformation_matrix_with_translation(15, 15))
63
+ .to eq [2, 0, 0, 2, 170, 170]
61
64
  end
62
65
  end
63
66
  end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Prawn::View do
6
+ let(:view_object) { Object.new.tap { |o| o.extend(described_class) } }
7
+
8
+ it 'provides a Prawn::Document object by default' do
9
+ expect(view_object.document).to be_kind_of(Prawn::Document)
10
+ end
11
+
12
+ it 'delegates unhandled methods to object returned by document method' do
13
+ doc = instance_double('Document')
14
+ allow(view_object).to receive(:document).and_return(doc)
15
+
16
+ allow(doc).to receive(:some_delegated_method)
17
+
18
+ view_object.some_delegated_method
19
+
20
+ expect(doc).to have_received(:some_delegated_method)
21
+ end
22
+
23
+ it 'allows a block-like DSL via the update method' do
24
+ doc = instance_double('Document')
25
+ allow(view_object).to receive(:document).and_return(doc)
26
+
27
+ allow(doc).to receive(:foo)
28
+ allow(doc).to receive(:bar)
29
+
30
+ view_object.update do
31
+ foo
32
+ bar
33
+ end
34
+ expect(doc).to have_received(:foo)
35
+ expect(doc).to have_received(:bar)
36
+ end
37
+
38
+ it 'aliases save_as() to document.render_file()' do
39
+ doc = instance_double('Document')
40
+ allow(doc).to receive(:render_file)
41
+
42
+ allow(view_object).to receive(:document).and_return(doc)
43
+
44
+ view_object.save_as('foo.pdf')
45
+ expect(doc).to have_received(:render_file)
46
+ end
47
+
48
+ describe '#respond_to?', issue: 1064 do
49
+ subject { view_object.respond_to?(method) }
50
+
51
+ context 'when called with an existing method from Prawn::Document' do
52
+ let(:method) { :text }
53
+
54
+ it { is_expected.to be_truthy }
55
+ end
56
+
57
+ context 'when called with a non-existing method' do
58
+ let(:method) { :non_existing_method }
59
+
60
+ it { is_expected.to be_falsey }
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'digest/sha2'
5
+
6
+ MANUAL_HASH =
7
+ case RUBY_ENGINE
8
+ when 'ruby'
9
+ 'b38bd8aaa7b419a2f594ee8837cd62f813141000393995b0c0456644b823a62a'\
10
+ '2f8031b2db0fc9e7c544b3946a9b0e60570d510564e6fed3931e0717dd49188a'
11
+ when 'jruby'
12
+ 'b38bd8aaa7b419a2f594ee8837cd62f813141000393995b0c0456644b823a62a'\
13
+ '2f8031b2db0fc9e7c544b3946a9b0e60570d510564e6fed3931e0717dd49188a'
14
+ end
15
+
16
+ RSpec.describe Prawn do
17
+ describe 'manual' do
18
+ # JRuby's zlib is a bit quirky. It sometimes produces different output to
19
+ # libzlib (used by MRI). It's still a proper deflate stream and can be
20
+ # decompressed just fine but for whatever reason compressin produses
21
+ # different output.
22
+ #
23
+ # See: https://github.com/jruby/jruby/issues/4244
24
+ it 'contains no unexpected changes' do
25
+ ENV['CI'] ||= 'true'
26
+
27
+ require File.expand_path(File.join(__dir__, %w[.. manual contents]))
28
+ s = prawn_manual_document.render
29
+
30
+ hash = Digest::SHA512.hexdigest(s)
31
+
32
+ expect(hash).to eq MANUAL_HASH
33
+ end
34
+ end
35
+ end
@@ -1,41 +1,38 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  puts "Prawn specs: Running on Ruby Version: #{RUBY_VERSION}"
4
4
 
5
- require "bundler"
6
- Bundler.setup
7
-
8
- if ENV["COVERAGE"]
9
- require "simplecov"
5
+ if ENV['COVERAGE']
6
+ require 'simplecov'
10
7
  SimpleCov.start do
11
- add_filter "/spec/"
8
+ add_filter '/spec/'
12
9
  end
13
10
  end
14
11
 
15
- require_relative "../lib/prawn"
12
+ require_relative '../lib/prawn'
16
13
 
17
14
  Prawn.debug = true
18
- Prawn::Font::AFM.hide_m17n_warning = true
15
+ Prawn::Fonts::AFM.hide_m17n_warning = true
19
16
 
20
- require "rspec"
21
- require "pdf/reader"
22
- require "pdf/inspector"
17
+ require 'rspec'
18
+ require 'pdf/reader'
19
+ require 'pdf/inspector'
23
20
 
24
21
  # Requires supporting ruby files with custom matchers and macros, etc,
25
22
  # in spec/extensions/ and its subdirectories.
26
- Dir[File.dirname(__FILE__) + "/extensions/**/*.rb"].each { |f| require f }
23
+ Dir[File.join(__dir__, 'extensions', '**', '*.rb')].sort.each { |f| require f }
27
24
 
28
25
  RSpec.configure do |config|
29
26
  config.include EncodingHelpers
30
27
  end
31
28
 
32
- def create_pdf(klass = Prawn::Document)
33
- @pdf = klass.new(:margin => 0)
29
+ def create_pdf(klass = Prawn::Document, &block)
30
+ klass.new(margin: 0, &block)
34
31
  end
35
32
 
36
33
  RSpec::Matchers.define :have_parseable_xobjects do
37
34
  match do |actual|
38
- expect { PDF::Inspector::XObject.analyze(actual.render) }.not_to raise_error
35
+ expect { PDF::Inspector::XObject.analyze(actual.render) }.to_not raise_error
39
36
  true
40
37
  end
41
38
  failure_message do |actual|
@@ -44,6 +41,8 @@ RSpec::Matchers.define :have_parseable_xobjects do
44
41
  end
45
42
 
46
43
  # Make some methods public to assist in testing
47
- module Prawn::Graphics
48
- public :map_to_absolute
49
- end
44
+ # module Prawn
45
+ # module Graphics
46
+ # public :map_to_absolute
47
+ # end
48
+ # end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prawn
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Brown
@@ -9,167 +9,213 @@ authors:
9
9
  - Daniel Nelson
10
10
  - Jonathan Greenberg
11
11
  - James Healy
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
- cert_chain: []
15
- date: 2016-03-01 00:00:00.000000000 Z
14
+ cert_chain:
15
+ - |
16
+ -----BEGIN CERTIFICATE-----
17
+ MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhhbGV4
18
+ L0RDPXBvaW50bGVzcy9EQz1vbmUwHhcNMjAwODAxMTQxMjE1WhcNMjEwODAxMTQx
19
+ MjE1WjAjMSEwHwYDVQQDDBhhbGV4L0RDPXBvaW50bGVzcy9EQz1vbmUwggEiMA0G
20
+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPOVLPGEK+eaP6zJfifrpWvPTg4qo3
21
+ XNJJPom80SwqX2hVCVsRDK4RYgKUQqKRQzHhlx14wZHwWLETBVbNDGX3uqyCnTWU
22
+ JUKh3ydiZShXpNHoV/NW7hhEYvNsDcBAjYTmbvXOhuYCo0Tz/0N2Oiun/0wIICtP
23
+ vytY9TY0/lklWjAbsqJjNOu3o8IYkJBAN/rU96E/6WhFwjnxLcTnV9RfFRXdjG5j
24
+ CughoB2xSwKX8gwbQ8fsnaZRmdyDGYNpz6sGF0zycfiLkTttbLA2nYATCALy98CH
25
+ nsyZNsTjb4WINCuY2yEDjwesw9f/ROkNC68EgQ5M+aMjp+D0WcYGfzojAgMBAAGj
26
+ dzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRPgIwSVbeonua/
27
+ Ny/8576oxdUbrjAdBgNVHREEFjAUgRJhbGV4QHBvaW50bGVzcy5vbmUwHQYDVR0S
28
+ BBYwFIESYWxleEBwb2ludGxlc3Mub25lMA0GCSqGSIb3DQEBCwUAA4IBAQAzhGxF
29
+ M0bXJ9GWD9vdVHOyzBQBJcJAvnsz2yV3+r4eJBsQynFIscsea8lHFL/d1eHYP0mN
30
+ k0fhK+WDcPlrj0Sn/Ezhk2qogTIekwDOK6pZkGRQzD45leJqQMnYd+/TXK3ri485
31
+ Gi4oJ6NitnnUT59SQnjD5JcENfc0EcRzclmVRFE8W4O+ORgo4Dypq1rwYUzxeyUk
32
+ mP5jNBWtH+hGUph28GQb0Hph6YnQb8zEFB88Xq80PK1SzkIPHpbTBk9mwPf6ypeX
33
+ Un1TJEahAlgENVml6CyDXSwk0H8N1V3gm1mb9Fe1T2Z/kAzvjo0qTDEtMVLU7Bxh
34
+ uqMUrdETjTnRYCVq
35
+ -----END CERTIFICATE-----
36
+ date: 2020-08-01 00:00:00.000000000 Z
16
37
  dependencies:
17
38
  - !ruby/object:Gem::Dependency
18
- name: ttfunk
39
+ name: pdf-core
19
40
  requirement: !ruby/object:Gem::Requirement
20
41
  requirements:
21
42
  - - "~>"
22
43
  - !ruby/object:Gem::Version
23
- version: 1.4.0
44
+ version: 0.8.1
24
45
  type: :runtime
25
46
  prerelease: false
26
47
  version_requirements: !ruby/object:Gem::Requirement
27
48
  requirements:
28
49
  - - "~>"
29
50
  - !ruby/object:Gem::Version
30
- version: 1.4.0
51
+ version: 0.8.1
31
52
  - !ruby/object:Gem::Dependency
32
- name: pdf-core
53
+ name: ttfunk
33
54
  requirement: !ruby/object:Gem::Requirement
34
55
  requirements:
35
56
  - - "~>"
36
57
  - !ruby/object:Gem::Version
37
- version: 0.6.1
58
+ version: '1.6'
38
59
  type: :runtime
39
60
  prerelease: false
40
61
  version_requirements: !ruby/object:Gem::Requirement
41
62
  requirements:
42
63
  - - "~>"
43
64
  - !ruby/object:Gem::Version
44
- version: 0.6.1
65
+ version: '1.6'
45
66
  - !ruby/object:Gem::Dependency
46
67
  name: pdf-inspector
47
68
  requirement: !ruby/object:Gem::Requirement
48
69
  requirements:
49
- - - "~>"
70
+ - - ">="
50
71
  - !ruby/object:Gem::Version
51
72
  version: 1.2.1
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.a
52
76
  type: :development
53
77
  prerelease: false
54
78
  version_requirements: !ruby/object:Gem::Requirement
55
79
  requirements:
56
- - - "~>"
80
+ - - ">="
57
81
  - !ruby/object:Gem::Version
58
82
  version: 1.2.1
83
+ - - "<"
84
+ - !ruby/object:Gem::Version
85
+ version: 2.0.a
59
86
  - !ruby/object:Gem::Dependency
60
- name: yard
87
+ name: pdf-reader
61
88
  requirement: !ruby/object:Gem::Requirement
62
89
  requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.4'
63
93
  - - ">="
64
94
  - !ruby/object:Gem::Version
65
- version: '0'
95
+ version: 1.4.1
66
96
  type: :development
67
97
  prerelease: false
68
98
  version_requirements: !ruby/object:Gem::Requirement
69
99
  requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.4'
70
103
  - - ">="
71
104
  - !ruby/object:Gem::Version
72
- version: '0'
105
+ version: 1.4.1
73
106
  - !ruby/object:Gem::Dependency
74
- name: rspec
107
+ name: prawn-manual_builder
108
+ requirement: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.3.0
113
+ type: :development
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 0.3.0
120
+ - !ruby/object:Gem::Dependency
121
+ name: rake
75
122
  requirement: !ruby/object:Gem::Requirement
76
123
  requirements:
77
124
  - - "~>"
78
125
  - !ruby/object:Gem::Version
79
- version: '3.0'
126
+ version: '12.0'
80
127
  type: :development
81
128
  prerelease: false
82
129
  version_requirements: !ruby/object:Gem::Requirement
83
130
  requirements:
84
131
  - - "~>"
85
132
  - !ruby/object:Gem::Version
86
- version: '3.0'
133
+ version: '12.0'
87
134
  - !ruby/object:Gem::Dependency
88
- name: rake
135
+ name: rspec
89
136
  requirement: !ruby/object:Gem::Requirement
90
137
  requirements:
91
- - - ">="
138
+ - - "~>"
92
139
  - !ruby/object:Gem::Version
93
- version: '0'
140
+ version: '3.0'
94
141
  type: :development
95
142
  prerelease: false
96
143
  version_requirements: !ruby/object:Gem::Requirement
97
144
  requirements:
98
- - - ">="
145
+ - - "~>"
99
146
  - !ruby/object:Gem::Version
100
- version: '0'
147
+ version: '3.0'
101
148
  - !ruby/object:Gem::Dependency
102
- name: simplecov
149
+ name: rubocop
103
150
  requirement: !ruby/object:Gem::Requirement
104
151
  requirements:
105
- - - ">="
152
+ - - "~>"
106
153
  - !ruby/object:Gem::Version
107
- version: '0'
154
+ version: 0.84.0
108
155
  type: :development
109
156
  prerelease: false
110
157
  version_requirements: !ruby/object:Gem::Requirement
111
158
  requirements:
112
- - - ">="
159
+ - - "~>"
113
160
  - !ruby/object:Gem::Version
114
- version: '0'
161
+ version: 0.84.0
115
162
  - !ruby/object:Gem::Dependency
116
- name: prawn-manual_builder
163
+ name: rubocop-performance
117
164
  requirement: !ruby/object:Gem::Requirement
118
165
  requirements:
119
- - - ">="
166
+ - - "~>"
120
167
  - !ruby/object:Gem::Version
121
- version: 0.2.0
168
+ version: '1.1'
122
169
  type: :development
123
170
  prerelease: false
124
171
  version_requirements: !ruby/object:Gem::Requirement
125
172
  requirements:
126
- - - ">="
173
+ - - "~>"
127
174
  - !ruby/object:Gem::Version
128
- version: 0.2.0
175
+ version: '1.1'
129
176
  - !ruby/object:Gem::Dependency
130
- name: pdf-reader
177
+ name: rubocop-rspec
131
178
  requirement: !ruby/object:Gem::Requirement
132
179
  requirements:
133
180
  - - "~>"
134
181
  - !ruby/object:Gem::Version
135
- version: '1.2'
182
+ version: '1.32'
136
183
  type: :development
137
184
  prerelease: false
138
185
  version_requirements: !ruby/object:Gem::Requirement
139
186
  requirements:
140
187
  - - "~>"
141
188
  - !ruby/object:Gem::Version
142
- version: '1.2'
189
+ version: '1.32'
143
190
  - !ruby/object:Gem::Dependency
144
- name: rubocop
191
+ name: simplecov
145
192
  requirement: !ruby/object:Gem::Requirement
146
193
  requirements:
147
- - - '='
194
+ - - ">="
148
195
  - !ruby/object:Gem::Version
149
- version: 0.30.1
196
+ version: '0'
150
197
  type: :development
151
198
  prerelease: false
152
199
  version_requirements: !ruby/object:Gem::Requirement
153
200
  requirements:
154
- - - '='
201
+ - - ">="
155
202
  - !ruby/object:Gem::Version
156
- version: 0.30.1
203
+ version: '0'
157
204
  - !ruby/object:Gem::Dependency
158
- name: code_statistics
205
+ name: yard
159
206
  requirement: !ruby/object:Gem::Requirement
160
207
  requirements:
161
- - - '='
208
+ - - ">="
162
209
  - !ruby/object:Gem::Version
163
- version: 0.2.13
210
+ version: '0'
164
211
  type: :development
165
212
  prerelease: false
166
213
  version_requirements: !ruby/object:Gem::Requirement
167
214
  requirements:
168
- - - '='
215
+ - - ">="
169
216
  - !ruby/object:Gem::Version
170
- version: 0.2.13
171
- description: |2
172
- Prawn is a fast, tiny, and nimble PDF generator for Ruby
217
+ version: '0'
218
+ description: " Prawn is a fast, tiny, and nimble PDF generator for Ruby\n"
173
219
  email:
174
220
  - gregory.t.brown@gmail.com
175
221
  - brad@bradediger.com
@@ -202,51 +248,6 @@ files:
202
248
  - data/fonts/Times-Italic.afm
203
249
  - data/fonts/Times-Roman.afm
204
250
  - data/fonts/ZapfDingbats.afm
205
- - data/images/16bit.alpha
206
- - data/images/16bit.color
207
- - data/images/16bit.png
208
- - data/images/arrow.png
209
- - data/images/arrow2.png
210
- - data/images/blend_modes_bottom_layer.jpg
211
- - data/images/blend_modes_top_layer.jpg
212
- - data/images/dice.alpha
213
- - data/images/dice.color
214
- - data/images/dice.png
215
- - data/images/dice_interlaced.png
216
- - data/images/fractal.jpg
217
- - data/images/indexed_color.dat
218
- - data/images/indexed_color.png
219
- - data/images/indexed_transparency.png
220
- - data/images/indexed_transparency_alpha.dat
221
- - data/images/indexed_transparency_color.dat
222
- - data/images/letterhead.jpg
223
- - data/images/license.md
224
- - data/images/page_white_text.alpha
225
- - data/images/page_white_text.color
226
- - data/images/page_white_text.png
227
- - data/images/pigs.jpg
228
- - data/images/prawn.png
229
- - data/images/ruport.png
230
- - data/images/ruport_data.dat
231
- - data/images/ruport_transparent.png
232
- - data/images/ruport_type0.png
233
- - data/images/stef.jpg
234
- - data/images/tru256.bmp
235
- - data/images/web-links.dat
236
- - data/images/web-links.png
237
- - data/pdfs/complex_template.pdf
238
- - data/pdfs/contains_ttf_font.pdf
239
- - data/pdfs/encrypted.pdf
240
- - data/pdfs/form.pdf
241
- - data/pdfs/hexagon.pdf
242
- - data/pdfs/indirect_reference.pdf
243
- - data/pdfs/multipage_template.pdf
244
- - data/pdfs/nested_pages.pdf
245
- - data/pdfs/page_without_mediabox.pdf
246
- - data/pdfs/resources_as_indirect_object.pdf
247
- - data/pdfs/two_hexagons.pdf
248
- - data/pdfs/version_1_6.pdf
249
- - data/shift_jis_text.txt
250
251
  - lib/prawn.rb
251
252
  - lib/prawn/document.rb
252
253
  - lib/prawn/document/bounding_box.rb
@@ -256,10 +257,12 @@ files:
256
257
  - lib/prawn/encoding.rb
257
258
  - lib/prawn/errors.rb
258
259
  - lib/prawn/font.rb
259
- - lib/prawn/font/afm.rb
260
- - lib/prawn/font/dfont.rb
261
- - lib/prawn/font/ttf.rb
262
260
  - lib/prawn/font_metric_cache.rb
261
+ - lib/prawn/fonts/afm.rb
262
+ - lib/prawn/fonts/dfont.rb
263
+ - lib/prawn/fonts/otf.rb
264
+ - lib/prawn/fonts/ttc.rb
265
+ - lib/prawn/fonts/ttf.rb
263
266
  - lib/prawn/graphics.rb
264
267
  - lib/prawn/graphics/blend_mode.rb
265
268
  - lib/prawn/graphics/cap_style.rb
@@ -397,109 +400,70 @@ files:
397
400
  - manual/text/utf8.rb
398
401
  - manual/text/win_ansi_charset.rb
399
402
  - prawn.gemspec
400
- - spec/acceptance/png_spec.rb
401
- - spec/annotations_spec.rb
402
- - spec/blend_mode_spec.rb
403
- - spec/bounding_box_spec.rb
404
- - spec/column_box_spec.rb
405
403
  - spec/data/curves.pdf
406
- - spec/destinations_spec.rb
407
- - spec/document_spec.rb
408
404
  - spec/extensions/encoding_helpers.rb
409
- - spec/font_metric_cache_spec.rb
410
- - spec/font_spec.rb
411
- - spec/formatted_text_arranger_spec.rb
412
- - spec/formatted_text_box_spec.rb
413
- - spec/formatted_text_fragment_spec.rb
414
- - spec/graphics_spec.rb
415
- - spec/grid_spec.rb
416
- - spec/image_handler_spec.rb
417
- - spec/images_spec.rb
418
- - spec/inline_formatted_text_parser_spec.rb
419
- - spec/jpg_spec.rb
420
- - spec/line_wrap_spec.rb
421
- - spec/measurement_units_spec.rb
422
- - spec/outline_spec.rb
423
- - spec/png_spec.rb
424
- - spec/reference_spec.rb
425
- - spec/repeater_spec.rb
426
- - spec/security_spec.rb
427
- - spec/soft_mask_spec.rb
428
- - spec/span_spec.rb
405
+ - spec/prawn/document/bounding_box_spec.rb
406
+ - spec/prawn/document/column_box_spec.rb
407
+ - spec/prawn/document/security_spec.rb
408
+ - spec/prawn/document_annotations_spec.rb
409
+ - spec/prawn/document_destinations_spec.rb
410
+ - spec/prawn/document_grid_spec.rb
411
+ - spec/prawn/document_reference_spec.rb
412
+ - spec/prawn/document_span_spec.rb
413
+ - spec/prawn/document_spec.rb
414
+ - spec/prawn/font_metric_cache_spec.rb
415
+ - spec/prawn/font_spec.rb
416
+ - spec/prawn/graphics/blend_mode_spec.rb
417
+ - spec/prawn/graphics/transparency_spec.rb
418
+ - spec/prawn/graphics_spec.rb
419
+ - spec/prawn/graphics_stroke_styles_spec.rb
420
+ - spec/prawn/image_handler_spec.rb
421
+ - spec/prawn/images/jpg_spec.rb
422
+ - spec/prawn/images/png_spec.rb
423
+ - spec/prawn/images_spec.rb
424
+ - spec/prawn/measurements_extensions_spec.rb
425
+ - spec/prawn/outline_spec.rb
426
+ - spec/prawn/repeater_spec.rb
427
+ - spec/prawn/soft_mask_spec.rb
428
+ - spec/prawn/stamp_spec.rb
429
+ - spec/prawn/text/box_spec.rb
430
+ - spec/prawn/text/formatted/arranger_spec.rb
431
+ - spec/prawn/text/formatted/box_spec.rb
432
+ - spec/prawn/text/formatted/fragment_spec.rb
433
+ - spec/prawn/text/formatted/line_wrap_spec.rb
434
+ - spec/prawn/text/formatted/parser_spec.rb
435
+ - spec/prawn/text_draw_text_spec.rb
436
+ - spec/prawn/text_rendering_mode_spec.rb
437
+ - spec/prawn/text_spacing_spec.rb
438
+ - spec/prawn/text_spec.rb
439
+ - spec/prawn/text_with_inline_formatting_spec.rb
440
+ - spec/prawn/transformation_stack_spec.rb
441
+ - spec/prawn/view_spec.rb
442
+ - spec/prawn_manual_spec.rb
429
443
  - spec/spec_helper.rb
430
- - spec/stamp_spec.rb
431
- - spec/stroke_styles_spec.rb
432
- - spec/text_at_spec.rb
433
- - spec/text_box_spec.rb
434
- - spec/text_rendering_mode_spec.rb
435
- - spec/text_spacing_spec.rb
436
- - spec/text_spec.rb
437
- - spec/text_with_inline_formatting_spec.rb
438
- - spec/transformation_stack_spec.rb
439
- - spec/transparency_spec.rb
440
- - spec/view_spec.rb
441
- homepage: http://prawn.majesticseacreature.com
444
+ homepage: http://prawnpdf.org
442
445
  licenses:
443
446
  - PRAWN
444
447
  - GPL-2.0
445
448
  - GPL-3.0
446
449
  metadata: {}
447
- post_install_message:
450
+ post_install_message:
448
451
  rdoc_options: []
449
452
  require_paths:
450
453
  - lib
451
454
  required_ruby_version: !ruby/object:Gem::Requirement
452
455
  requirements:
453
- - - ">="
456
+ - - "~>"
454
457
  - !ruby/object:Gem::Version
455
- version: 2.0.0
458
+ version: '2.5'
456
459
  required_rubygems_version: !ruby/object:Gem::Requirement
457
460
  requirements:
458
461
  - - ">="
459
462
  - !ruby/object:Gem::Version
460
463
  version: 1.3.6
461
464
  requirements: []
462
- rubyforge_project: prawn
463
- rubygems_version: 2.4.5.1
464
- signing_key:
465
+ rubygems_version: 3.1.2
466
+ signing_key:
465
467
  specification_version: 4
466
468
  summary: A fast and nimble PDF generator for Ruby
467
- test_files:
468
- - spec/annotations_spec.rb
469
- - spec/blend_mode_spec.rb
470
- - spec/bounding_box_spec.rb
471
- - spec/column_box_spec.rb
472
- - spec/destinations_spec.rb
473
- - spec/document_spec.rb
474
- - spec/font_metric_cache_spec.rb
475
- - spec/font_spec.rb
476
- - spec/formatted_text_arranger_spec.rb
477
- - spec/formatted_text_box_spec.rb
478
- - spec/formatted_text_fragment_spec.rb
479
- - spec/graphics_spec.rb
480
- - spec/grid_spec.rb
481
- - spec/image_handler_spec.rb
482
- - spec/images_spec.rb
483
- - spec/inline_formatted_text_parser_spec.rb
484
- - spec/jpg_spec.rb
485
- - spec/line_wrap_spec.rb
486
- - spec/measurement_units_spec.rb
487
- - spec/outline_spec.rb
488
- - spec/png_spec.rb
489
- - spec/reference_spec.rb
490
- - spec/repeater_spec.rb
491
- - spec/security_spec.rb
492
- - spec/soft_mask_spec.rb
493
- - spec/span_spec.rb
494
- - spec/stamp_spec.rb
495
- - spec/stroke_styles_spec.rb
496
- - spec/text_at_spec.rb
497
- - spec/text_box_spec.rb
498
- - spec/text_rendering_mode_spec.rb
499
- - spec/text_spacing_spec.rb
500
- - spec/text_spec.rb
501
- - spec/text_with_inline_formatting_spec.rb
502
- - spec/transformation_stack_spec.rb
503
- - spec/transparency_spec.rb
504
- - spec/view_spec.rb
505
- has_rdoc:
469
+ test_files: []