prawn 2.0.2 → 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 (277) 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 +37 -49
  8. data/lib/prawn/document.rb +181 -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 +18 -8
  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 +115 -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 +120 -80
  23. data/lib/prawn/graphics/blend_mode.rb +65 -0
  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 +197 -67
  29. data/lib/prawn/graphics/transformation.rb +17 -8
  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 +107 -66
  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 +78 -49
  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 +121 -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 +44 -0
  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 +52 -0
  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 -39
  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 +4 -5
  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 +45 -33
  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/prawn/image_handler_spec.rb +53 -0
  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/prawn/transformation_stack_spec.rb +66 -0
  195. data/spec/prawn/view_spec.rb +63 -0
  196. data/spec/prawn_manual_spec.rb +35 -0
  197. data/spec/spec_helper.rb +19 -23
  198. metadata +145 -185
  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/dice.alpha +0 -0
  206. data/data/images/dice.color +0 -0
  207. data/data/images/dice.png +0 -0
  208. data/data/images/dice_interlaced.png +0 -0
  209. data/data/images/fractal.jpg +0 -0
  210. data/data/images/indexed_color.dat +0 -0
  211. data/data/images/indexed_color.png +0 -0
  212. data/data/images/letterhead.jpg +0 -0
  213. data/data/images/license.md +0 -8
  214. data/data/images/page_white_text.alpha +0 -0
  215. data/data/images/page_white_text.color +0 -0
  216. data/data/images/page_white_text.png +0 -0
  217. data/data/images/pal_bk.png +0 -0
  218. data/data/images/pigs.jpg +0 -0
  219. data/data/images/prawn.png +0 -0
  220. data/data/images/ruport.png +0 -0
  221. data/data/images/ruport_data.dat +0 -0
  222. data/data/images/ruport_transparent.png +0 -0
  223. data/data/images/ruport_type0.png +0 -0
  224. data/data/images/stef.jpg +0 -0
  225. data/data/images/tru256.bmp +0 -0
  226. data/data/images/web-links.dat +0 -1
  227. data/data/images/web-links.png +0 -0
  228. data/data/pdfs/complex_template.pdf +0 -0
  229. data/data/pdfs/contains_ttf_font.pdf +0 -0
  230. data/data/pdfs/encrypted.pdf +0 -0
  231. data/data/pdfs/form.pdf +1 -819
  232. data/data/pdfs/hexagon.pdf +0 -61
  233. data/data/pdfs/indirect_reference.pdf +0 -86
  234. data/data/pdfs/multipage_template.pdf +0 -127
  235. data/data/pdfs/nested_pages.pdf +0 -118
  236. data/data/pdfs/page_without_mediabox.pdf +0 -193
  237. data/data/pdfs/resources_as_indirect_object.pdf +0 -83
  238. data/data/pdfs/two_hexagons.pdf +0 -90
  239. data/data/pdfs/version_1_6.pdf +0 -61
  240. data/data/shift_jis_text.txt +0 -1
  241. data/spec/acceptance/png.rb +0 -24
  242. data/spec/annotations_spec.rb +0 -67
  243. data/spec/bounding_box_spec.rb +0 -501
  244. data/spec/column_box_spec.rb +0 -59
  245. data/spec/destinations_spec.rb +0 -13
  246. data/spec/document_spec.rb +0 -742
  247. data/spec/extensions/mocha.rb +0 -45
  248. data/spec/font_metric_cache_spec.rb +0 -52
  249. data/spec/font_spec.rb +0 -475
  250. data/spec/formatted_text_arranger_spec.rb +0 -423
  251. data/spec/formatted_text_box_spec.rb +0 -716
  252. data/spec/formatted_text_fragment_spec.rb +0 -299
  253. data/spec/graphics_spec.rb +0 -666
  254. data/spec/grid_spec.rb +0 -95
  255. data/spec/image_handler_spec.rb +0 -53
  256. data/spec/images_spec.rb +0 -167
  257. data/spec/inline_formatted_text_parser_spec.rb +0 -568
  258. data/spec/jpg_spec.rb +0 -23
  259. data/spec/line_wrap_spec.rb +0 -366
  260. data/spec/measurement_units_spec.rb +0 -22
  261. data/spec/outline_spec.rb +0 -409
  262. data/spec/png_spec.rb +0 -235
  263. data/spec/reference_spec.rb +0 -25
  264. data/spec/repeater_spec.rb +0 -154
  265. data/spec/security_spec.rb +0 -151
  266. data/spec/soft_mask_spec.rb +0 -78
  267. data/spec/span_spec.rb +0 -43
  268. data/spec/stamp_spec.rb +0 -179
  269. data/spec/stroke_styles_spec.rb +0 -208
  270. data/spec/text_at_spec.rb +0 -142
  271. data/spec/text_box_spec.rb +0 -1038
  272. data/spec/text_rendering_mode_spec.rb +0 -45
  273. data/spec/text_spacing_spec.rb +0 -93
  274. data/spec/text_spec.rb +0 -549
  275. data/spec/text_with_inline_formatting_spec.rb +0 -35
  276. data/spec/transparency_spec.rb +0 -91
  277. 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
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Prawn::TransformationStack do
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) }
12
+
13
+ describe '#add_to_transformation_stack' do
14
+ it 'creates and adds to the stack' do
15
+ pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
16
+
17
+ expect(stack).to eq [[[2, 0, 0, 2, 100, 100], [1, 0, 0, 1, 20, 20]]]
18
+ end
19
+
20
+ it 'adds to the last stack' do
21
+ pdf.save_transformation_stack
22
+ pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
23
+
24
+ expect(stack).to eq [
25
+ [[2, 0, 0, 2, 100, 100]],
26
+ [[2, 0, 0, 2, 100, 100], [1, 0, 0, 1, 20, 20]]
27
+ ]
28
+ end
29
+ end
30
+
31
+ describe '#save_transformation_stack' do
32
+ it 'clones the last stack' do
33
+ pdf.save_transformation_stack
34
+
35
+ expect(stack.length).to eq 2
36
+ expect(stack.first).to eq stack.last
37
+ expect(stack.first).to_not be stack.last
38
+ end
39
+ end
40
+
41
+ describe '#restore_transformation_stack' do
42
+ it 'pops off the last stack' do
43
+ pdf.save_transformation_stack
44
+ pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
45
+ pdf.restore_transformation_stack
46
+
47
+ expect(stack).to eq [[[2, 0, 0, 2, 100, 100]]]
48
+ end
49
+ end
50
+
51
+ describe 'current_transformation_matrix_with_translation' do
52
+ before do
53
+ pdf.add_to_transformation_stack(1, 0, 0, 1, 20, 20)
54
+ end
55
+
56
+ it 'calculates the last transformation' do
57
+ expect(pdf.current_transformation_matrix_with_translation)
58
+ .to eq [2, 0, 0, 2, 140, 140]
59
+ end
60
+
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]
64
+ end
65
+ end
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,52 +1,48 @@
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 "mocha/api"
22
- require "pdf/reader"
23
- require "pdf/inspector"
17
+ require 'rspec'
18
+ require 'pdf/reader'
19
+ require 'pdf/inspector'
24
20
 
25
21
  # Requires supporting ruby files with custom matchers and macros, etc,
26
22
  # in spec/extensions/ and its subdirectories.
27
- Dir[File.dirname(__FILE__) + "/extensions/**/*.rb"].each { |f| require f }
23
+ Dir[File.join(__dir__, 'extensions', '**', '*.rb')].sort.each { |f| require f }
28
24
 
29
25
  RSpec.configure do |config|
30
- config.mock_framework = :mocha
31
26
  config.include EncodingHelpers
32
- config.treat_symbols_as_metadata_keys_with_true_values = true
33
27
  end
34
28
 
35
- def create_pdf(klass = Prawn::Document)
36
- @pdf = klass.new(:margin => 0)
29
+ def create_pdf(klass = Prawn::Document, &block)
30
+ klass.new(margin: 0, &block)
37
31
  end
38
32
 
39
33
  RSpec::Matchers.define :have_parseable_xobjects do
40
34
  match do |actual|
41
- expect { PDF::Inspector::XObject.analyze(actual.render) }.not_to raise_error
35
+ expect { PDF::Inspector::XObject.analyze(actual.render) }.to_not raise_error
42
36
  true
43
37
  end
44
- failure_message_for_should do |actual|
38
+ failure_message do |actual|
45
39
  "expected that #{actual}'s XObjects could be successfully parsed"
46
40
  end
47
41
  end
48
42
 
49
43
  # Make some methods public to assist in testing
50
- module Prawn::Graphics
51
- public :map_to_absolute
52
- 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.0.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Brown
@@ -9,181 +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: 2015-07-16 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.0
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.0
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
- version: 1.2.0
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
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.1
83
+ - - "<"
57
84
  - !ruby/object:Gem::Version
58
- version: 1.2.0
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
75
108
  requirement: !ruby/object:Gem::Requirement
76
109
  requirements:
77
- - - '='
110
+ - - ">="
78
111
  - !ruby/object:Gem::Version
79
- version: 2.14.1
112
+ version: 0.3.0
80
113
  type: :development
81
114
  prerelease: false
82
115
  version_requirements: !ruby/object:Gem::Requirement
83
116
  requirements:
84
- - - '='
117
+ - - ">="
85
118
  - !ruby/object:Gem::Version
86
- version: 2.14.1
119
+ version: 0.3.0
87
120
  - !ruby/object:Gem::Dependency
88
- name: mocha
121
+ name: rake
89
122
  requirement: !ruby/object:Gem::Requirement
90
123
  requirements:
91
- - - ">="
124
+ - - "~>"
92
125
  - !ruby/object:Gem::Version
93
- version: '0'
126
+ version: '12.0'
94
127
  type: :development
95
128
  prerelease: false
96
129
  version_requirements: !ruby/object:Gem::Requirement
97
130
  requirements:
98
- - - ">="
131
+ - - "~>"
99
132
  - !ruby/object:Gem::Version
100
- version: '0'
133
+ version: '12.0'
101
134
  - !ruby/object:Gem::Dependency
102
- name: rake
135
+ name: rspec
103
136
  requirement: !ruby/object:Gem::Requirement
104
137
  requirements:
105
- - - ">="
138
+ - - "~>"
106
139
  - !ruby/object:Gem::Version
107
- version: '0'
140
+ version: '3.0'
108
141
  type: :development
109
142
  prerelease: false
110
143
  version_requirements: !ruby/object:Gem::Requirement
111
144
  requirements:
112
- - - ">="
145
+ - - "~>"
113
146
  - !ruby/object:Gem::Version
114
- version: '0'
147
+ version: '3.0'
115
148
  - !ruby/object:Gem::Dependency
116
- name: simplecov
149
+ name: rubocop
117
150
  requirement: !ruby/object:Gem::Requirement
118
151
  requirements:
119
- - - ">="
152
+ - - "~>"
120
153
  - !ruby/object:Gem::Version
121
- version: '0'
154
+ version: 0.84.0
122
155
  type: :development
123
156
  prerelease: false
124
157
  version_requirements: !ruby/object:Gem::Requirement
125
158
  requirements:
126
- - - ">="
159
+ - - "~>"
127
160
  - !ruby/object:Gem::Version
128
- version: '0'
161
+ version: 0.84.0
129
162
  - !ruby/object:Gem::Dependency
130
- name: prawn-manual_builder
163
+ name: rubocop-performance
131
164
  requirement: !ruby/object:Gem::Requirement
132
165
  requirements:
133
- - - ">="
166
+ - - "~>"
134
167
  - !ruby/object:Gem::Version
135
- version: 0.2.0
168
+ version: '1.1'
136
169
  type: :development
137
170
  prerelease: false
138
171
  version_requirements: !ruby/object:Gem::Requirement
139
172
  requirements:
140
- - - ">="
173
+ - - "~>"
141
174
  - !ruby/object:Gem::Version
142
- version: 0.2.0
175
+ version: '1.1'
143
176
  - !ruby/object:Gem::Dependency
144
- name: pdf-reader
177
+ name: rubocop-rspec
145
178
  requirement: !ruby/object:Gem::Requirement
146
179
  requirements:
147
180
  - - "~>"
148
181
  - !ruby/object:Gem::Version
149
- version: '1.2'
182
+ version: '1.32'
150
183
  type: :development
151
184
  prerelease: false
152
185
  version_requirements: !ruby/object:Gem::Requirement
153
186
  requirements:
154
187
  - - "~>"
155
188
  - !ruby/object:Gem::Version
156
- version: '1.2'
189
+ version: '1.32'
157
190
  - !ruby/object:Gem::Dependency
158
- name: rubocop
191
+ name: simplecov
159
192
  requirement: !ruby/object:Gem::Requirement
160
193
  requirements:
161
- - - '='
194
+ - - ">="
162
195
  - !ruby/object:Gem::Version
163
- version: 0.30.1
196
+ version: '0'
164
197
  type: :development
165
198
  prerelease: false
166
199
  version_requirements: !ruby/object:Gem::Requirement
167
200
  requirements:
168
- - - '='
201
+ - - ">="
169
202
  - !ruby/object:Gem::Version
170
- version: 0.30.1
203
+ version: '0'
171
204
  - !ruby/object:Gem::Dependency
172
- name: code_statistics
205
+ name: yard
173
206
  requirement: !ruby/object:Gem::Requirement
174
207
  requirements:
175
- - - '='
208
+ - - ">="
176
209
  - !ruby/object:Gem::Version
177
- version: 0.2.13
210
+ version: '0'
178
211
  type: :development
179
212
  prerelease: false
180
213
  version_requirements: !ruby/object:Gem::Requirement
181
214
  requirements:
182
- - - '='
215
+ - - ">="
183
216
  - !ruby/object:Gem::Version
184
- version: 0.2.13
185
- description: |2
186
- 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"
187
219
  email:
188
220
  - gregory.t.brown@gmail.com
189
221
  - brad@bradediger.com
@@ -216,47 +248,6 @@ files:
216
248
  - data/fonts/Times-Italic.afm
217
249
  - data/fonts/Times-Roman.afm
218
250
  - data/fonts/ZapfDingbats.afm
219
- - data/images/16bit.alpha
220
- - data/images/16bit.color
221
- - data/images/16bit.png
222
- - data/images/arrow.png
223
- - data/images/arrow2.png
224
- - data/images/dice.alpha
225
- - data/images/dice.color
226
- - data/images/dice.png
227
- - data/images/dice_interlaced.png
228
- - data/images/fractal.jpg
229
- - data/images/indexed_color.dat
230
- - data/images/indexed_color.png
231
- - data/images/letterhead.jpg
232
- - data/images/license.md
233
- - data/images/page_white_text.alpha
234
- - data/images/page_white_text.color
235
- - data/images/page_white_text.png
236
- - data/images/pal_bk.png
237
- - data/images/pigs.jpg
238
- - data/images/prawn.png
239
- - data/images/ruport.png
240
- - data/images/ruport_data.dat
241
- - data/images/ruport_transparent.png
242
- - data/images/ruport_type0.png
243
- - data/images/stef.jpg
244
- - data/images/tru256.bmp
245
- - data/images/web-links.dat
246
- - data/images/web-links.png
247
- - data/pdfs/complex_template.pdf
248
- - data/pdfs/contains_ttf_font.pdf
249
- - data/pdfs/encrypted.pdf
250
- - data/pdfs/form.pdf
251
- - data/pdfs/hexagon.pdf
252
- - data/pdfs/indirect_reference.pdf
253
- - data/pdfs/multipage_template.pdf
254
- - data/pdfs/nested_pages.pdf
255
- - data/pdfs/page_without_mediabox.pdf
256
- - data/pdfs/resources_as_indirect_object.pdf
257
- - data/pdfs/two_hexagons.pdf
258
- - data/pdfs/version_1_6.pdf
259
- - data/shift_jis_text.txt
260
251
  - lib/prawn.rb
261
252
  - lib/prawn/document.rb
262
253
  - lib/prawn/document/bounding_box.rb
@@ -266,11 +257,14 @@ files:
266
257
  - lib/prawn/encoding.rb
267
258
  - lib/prawn/errors.rb
268
259
  - lib/prawn/font.rb
269
- - lib/prawn/font/afm.rb
270
- - lib/prawn/font/dfont.rb
271
- - lib/prawn/font/ttf.rb
272
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
273
266
  - lib/prawn/graphics.rb
267
+ - lib/prawn/graphics/blend_mode.rb
274
268
  - lib/prawn/graphics/cap_style.rb
275
269
  - lib/prawn/graphics/color.rb
276
270
  - lib/prawn/graphics/dash.rb
@@ -301,6 +295,7 @@ files:
301
295
  - lib/prawn/text/formatted/line_wrap.rb
302
296
  - lib/prawn/text/formatted/parser.rb
303
297
  - lib/prawn/text/formatted/wrap.rb
298
+ - lib/prawn/transformation_stack.rb
304
299
  - lib/prawn/utilities.rb
305
300
  - lib/prawn/version.rb
306
301
  - lib/prawn/view.rb
@@ -330,6 +325,7 @@ files:
330
325
  - manual/document_and_page_options/page_size.rb
331
326
  - manual/document_and_page_options/print_scaling.rb
332
327
  - manual/example_helper.rb
328
+ - manual/graphics/blend_mode.rb
333
329
  - manual/graphics/circle_and_ellipse.rb
334
330
  - manual/graphics/color.rb
335
331
  - manual/graphics/common_lines.rb
@@ -404,106 +400,70 @@ files:
404
400
  - manual/text/utf8.rb
405
401
  - manual/text/win_ansi_charset.rb
406
402
  - prawn.gemspec
407
- - spec/acceptance/png.rb
408
- - spec/annotations_spec.rb
409
- - spec/bounding_box_spec.rb
410
- - spec/column_box_spec.rb
411
403
  - spec/data/curves.pdf
412
- - spec/destinations_spec.rb
413
- - spec/document_spec.rb
414
404
  - spec/extensions/encoding_helpers.rb
415
- - spec/extensions/mocha.rb
416
- - spec/font_metric_cache_spec.rb
417
- - spec/font_spec.rb
418
- - spec/formatted_text_arranger_spec.rb
419
- - spec/formatted_text_box_spec.rb
420
- - spec/formatted_text_fragment_spec.rb
421
- - spec/graphics_spec.rb
422
- - spec/grid_spec.rb
423
- - spec/image_handler_spec.rb
424
- - spec/images_spec.rb
425
- - spec/inline_formatted_text_parser_spec.rb
426
- - spec/jpg_spec.rb
427
- - spec/line_wrap_spec.rb
428
- - spec/measurement_units_spec.rb
429
- - spec/outline_spec.rb
430
- - spec/png_spec.rb
431
- - spec/reference_spec.rb
432
- - spec/repeater_spec.rb
433
- - spec/security_spec.rb
434
- - spec/soft_mask_spec.rb
435
- - 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
436
443
  - spec/spec_helper.rb
437
- - spec/stamp_spec.rb
438
- - spec/stroke_styles_spec.rb
439
- - spec/text_at_spec.rb
440
- - spec/text_box_spec.rb
441
- - spec/text_rendering_mode_spec.rb
442
- - spec/text_spacing_spec.rb
443
- - spec/text_spec.rb
444
- - spec/text_with_inline_formatting_spec.rb
445
- - spec/transparency_spec.rb
446
- - spec/view_spec.rb
447
- homepage: http://prawn.majesticseacreature.com
444
+ homepage: http://prawnpdf.org
448
445
  licenses:
449
- - RUBY
450
- - GPL-2
451
- - GPL-3
446
+ - PRAWN
447
+ - GPL-2.0
448
+ - GPL-3.0
452
449
  metadata: {}
453
- post_install_message:
450
+ post_install_message:
454
451
  rdoc_options: []
455
452
  require_paths:
456
453
  - lib
457
454
  required_ruby_version: !ruby/object:Gem::Requirement
458
455
  requirements:
459
- - - ">="
456
+ - - "~>"
460
457
  - !ruby/object:Gem::Version
461
- version: 2.0.0
458
+ version: '2.5'
462
459
  required_rubygems_version: !ruby/object:Gem::Requirement
463
460
  requirements:
464
461
  - - ">="
465
462
  - !ruby/object:Gem::Version
466
463
  version: 1.3.6
467
464
  requirements: []
468
- rubyforge_project: prawn
469
- rubygems_version: 2.4.5
470
- signing_key:
465
+ rubygems_version: 3.1.2
466
+ signing_key:
471
467
  specification_version: 4
472
468
  summary: A fast and nimble PDF generator for Ruby
473
- test_files:
474
- - spec/annotations_spec.rb
475
- - spec/bounding_box_spec.rb
476
- - spec/column_box_spec.rb
477
- - spec/destinations_spec.rb
478
- - spec/document_spec.rb
479
- - spec/font_metric_cache_spec.rb
480
- - spec/font_spec.rb
481
- - spec/formatted_text_arranger_spec.rb
482
- - spec/formatted_text_box_spec.rb
483
- - spec/formatted_text_fragment_spec.rb
484
- - spec/graphics_spec.rb
485
- - spec/grid_spec.rb
486
- - spec/image_handler_spec.rb
487
- - spec/images_spec.rb
488
- - spec/inline_formatted_text_parser_spec.rb
489
- - spec/jpg_spec.rb
490
- - spec/line_wrap_spec.rb
491
- - spec/measurement_units_spec.rb
492
- - spec/outline_spec.rb
493
- - spec/png_spec.rb
494
- - spec/reference_spec.rb
495
- - spec/repeater_spec.rb
496
- - spec/security_spec.rb
497
- - spec/soft_mask_spec.rb
498
- - spec/span_spec.rb
499
- - spec/stamp_spec.rb
500
- - spec/stroke_styles_spec.rb
501
- - spec/text_at_spec.rb
502
- - spec/text_box_spec.rb
503
- - spec/text_rendering_mode_spec.rb
504
- - spec/text_spacing_spec.rb
505
- - spec/text_spec.rb
506
- - spec/text_with_inline_formatting_spec.rb
507
- - spec/transparency_spec.rb
508
- - spec/view_spec.rb
509
- has_rdoc:
469
+ test_files: []