prawn 2.1.0 → 2.2.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 (278) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile +1 -9
  5. data/Rakefile +12 -22
  6. data/lib/prawn.rb +29 -48
  7. data/lib/prawn/document.rb +148 -123
  8. data/lib/prawn/document/bounding_box.rb +33 -26
  9. data/lib/prawn/document/column_box.rb +5 -7
  10. data/lib/prawn/document/internals.rb +6 -6
  11. data/lib/prawn/document/span.rb +20 -17
  12. data/lib/prawn/encoding.rb +65 -67
  13. data/lib/prawn/errors.rb +10 -7
  14. data/lib/prawn/font.rb +78 -62
  15. data/lib/prawn/font/afm.rb +93 -66
  16. data/lib/prawn/font/dfont.rb +2 -10
  17. data/lib/prawn/font/ttc.rb +34 -0
  18. data/lib/prawn/font/ttf.rb +73 -65
  19. data/lib/prawn/font_metric_cache.rb +9 -8
  20. data/lib/prawn/graphics.rb +110 -70
  21. data/lib/prawn/graphics/blend_mode.rb +7 -8
  22. data/lib/prawn/graphics/cap_style.rb +2 -4
  23. data/lib/prawn/graphics/color.rb +23 -26
  24. data/lib/prawn/graphics/dash.rb +22 -12
  25. data/lib/prawn/graphics/join_style.rb +8 -4
  26. data/lib/prawn/graphics/patterns.rb +185 -96
  27. data/lib/prawn/graphics/transformation.rb +11 -9
  28. data/lib/prawn/graphics/transparency.rb +15 -13
  29. data/lib/prawn/grid.rb +20 -20
  30. data/lib/prawn/image_handler.rb +4 -6
  31. data/lib/prawn/images.rb +22 -15
  32. data/lib/prawn/images/image.rb +0 -1
  33. data/lib/prawn/images/jpg.rb +26 -22
  34. data/lib/prawn/images/png.rb +60 -57
  35. data/lib/prawn/measurement_extensions.rb +8 -9
  36. data/lib/prawn/measurements.rb +14 -15
  37. data/lib/prawn/outline.rb +96 -78
  38. data/lib/prawn/repeater.rb +12 -10
  39. data/lib/prawn/security.rb +66 -48
  40. data/lib/prawn/security/arcfour.rb +1 -3
  41. data/lib/prawn/soft_mask.rb +23 -25
  42. data/lib/prawn/stamp.rb +16 -12
  43. data/lib/prawn/text.rb +59 -45
  44. data/lib/prawn/text/box.rb +9 -8
  45. data/lib/prawn/text/formatted.rb +4 -6
  46. data/lib/prawn/text/formatted/arranger.rb +51 -30
  47. data/lib/prawn/text/formatted/box.rb +112 -88
  48. data/lib/prawn/text/formatted/fragment.rb +10 -15
  49. data/lib/prawn/text/formatted/line_wrap.rb +118 -61
  50. data/lib/prawn/text/formatted/parser.rb +134 -110
  51. data/lib/prawn/text/formatted/wrap.rb +42 -32
  52. data/lib/prawn/transformation_stack.rb +3 -4
  53. data/lib/prawn/utilities.rb +6 -21
  54. data/lib/prawn/version.rb +1 -3
  55. data/lib/prawn/view.rb +4 -2
  56. data/manual/basic_concepts/adding_pages.rb +4 -7
  57. data/manual/basic_concepts/basic_concepts.rb +29 -22
  58. data/manual/basic_concepts/creation.rb +8 -11
  59. data/manual/basic_concepts/cursor.rb +2 -5
  60. data/manual/basic_concepts/measurement.rb +3 -6
  61. data/manual/basic_concepts/origin.rb +3 -6
  62. data/manual/basic_concepts/other_cursor_helpers.rb +9 -12
  63. data/manual/basic_concepts/view.rb +20 -16
  64. data/manual/bounding_box/bounding_box.rb +27 -24
  65. data/manual/bounding_box/bounds.rb +9 -12
  66. data/manual/bounding_box/canvas.rb +2 -5
  67. data/manual/bounding_box/creation.rb +4 -7
  68. data/manual/bounding_box/indentation.rb +12 -15
  69. data/manual/bounding_box/nesting.rb +22 -17
  70. data/manual/bounding_box/russian_boxes.rb +8 -9
  71. data/manual/bounding_box/stretchy.rb +10 -13
  72. data/manual/contents.rb +26 -22
  73. data/manual/cover.rb +22 -20
  74. data/manual/document_and_page_options/background.rb +9 -13
  75. data/manual/document_and_page_options/document_and_page_options.rb +23 -20
  76. data/manual/document_and_page_options/metadata.rb +16 -16
  77. data/manual/document_and_page_options/page_margins.rb +16 -20
  78. data/manual/document_and_page_options/page_size.rb +11 -12
  79. data/manual/document_and_page_options/print_scaling.rb +15 -15
  80. data/manual/example_helper.rb +2 -4
  81. data/manual/graphics/blend_mode.rb +10 -9
  82. data/manual/graphics/circle_and_ellipse.rb +2 -5
  83. data/manual/graphics/color.rb +5 -9
  84. data/manual/graphics/common_lines.rb +5 -8
  85. data/manual/graphics/fill_and_stroke.rb +2 -5
  86. data/manual/graphics/fill_rules.rb +7 -10
  87. data/manual/graphics/gradients.rb +25 -21
  88. data/manual/graphics/graphics.rb +49 -43
  89. data/manual/graphics/helper.rb +10 -9
  90. data/manual/graphics/line_width.rb +5 -7
  91. data/manual/graphics/lines_and_curves.rb +5 -8
  92. data/manual/graphics/polygon.rb +4 -8
  93. data/manual/graphics/rectangle.rb +2 -5
  94. data/manual/graphics/rotate.rb +4 -7
  95. data/manual/graphics/scale.rb +12 -15
  96. data/manual/graphics/soft_masks.rb +1 -4
  97. data/manual/graphics/stroke_cap.rb +3 -6
  98. data/manual/graphics/stroke_dash.rb +9 -12
  99. data/manual/graphics/stroke_join.rb +2 -5
  100. data/manual/graphics/translate.rb +7 -10
  101. data/manual/graphics/transparency.rb +5 -8
  102. data/manual/how_to_read_this_manual.rb +4 -6
  103. data/manual/images/absolute_position.rb +4 -7
  104. data/manual/images/fit.rb +5 -8
  105. data/manual/images/horizontal.rb +6 -9
  106. data/manual/images/images.rb +25 -23
  107. data/manual/images/plain_image.rb +3 -6
  108. data/manual/images/scale.rb +7 -10
  109. data/manual/images/vertical.rb +10 -13
  110. data/manual/images/width_and_height.rb +8 -11
  111. data/manual/layout/boxes.rb +3 -6
  112. data/manual/layout/content.rb +5 -8
  113. data/manual/layout/layout.rb +16 -16
  114. data/manual/layout/simple_grid.rb +4 -7
  115. data/manual/outline/add_subsection_to.rb +18 -21
  116. data/manual/outline/insert_section_after.rb +13 -16
  117. data/manual/outline/outline.rb +19 -17
  118. data/manual/outline/sections_and_pages.rb +15 -18
  119. data/manual/repeatable_content/alternate_page_numbering.rb +19 -17
  120. data/manual/repeatable_content/page_numbering.rb +15 -16
  121. data/manual/repeatable_content/repeatable_content.rb +23 -19
  122. data/manual/repeatable_content/repeater.rb +12 -15
  123. data/manual/repeatable_content/stamp.rb +12 -15
  124. data/manual/security/encryption.rb +7 -10
  125. data/manual/security/permissions.rb +17 -14
  126. data/manual/security/security.rb +17 -16
  127. data/manual/table.rb +2 -4
  128. data/manual/text/alignment.rb +14 -17
  129. data/manual/text/color.rb +10 -11
  130. data/manual/text/column_box.rb +5 -8
  131. data/manual/text/fallback_fonts.rb +23 -21
  132. data/manual/text/font.rb +9 -12
  133. data/manual/text/font_size.rb +11 -14
  134. data/manual/text/font_style.rb +4 -7
  135. data/manual/text/formatted_callbacks.rb +23 -21
  136. data/manual/text/formatted_text.rb +31 -25
  137. data/manual/text/free_flowing_text.rb +18 -21
  138. data/manual/text/inline.rb +16 -19
  139. data/manual/text/kerning_and_character_spacing.rb +12 -15
  140. data/manual/text/leading.rb +5 -8
  141. data/manual/text/line_wrapping.rb +33 -17
  142. data/manual/text/paragraph_indentation.rb +11 -14
  143. data/manual/text/positioned_text.rb +13 -16
  144. data/manual/text/registering_families.rb +16 -19
  145. data/manual/text/rendering_and_color.rb +7 -10
  146. data/manual/text/right_to_left_text.rb +24 -19
  147. data/manual/text/rotation.rb +26 -23
  148. data/manual/text/single_usage.rb +6 -9
  149. data/manual/text/text.rb +56 -52
  150. data/manual/text/text_box_excess.rb +18 -17
  151. data/manual/text/text_box_extensions.rb +16 -15
  152. data/manual/text/text_box_overflow.rb +15 -18
  153. data/manual/text/utf8.rb +9 -12
  154. data/manual/text/win_ansi_charset.rb +18 -19
  155. data/prawn.gemspec +37 -27
  156. data/spec/extensions/encoding_helpers.rb +0 -2
  157. data/spec/manual_spec.rb +33 -0
  158. data/spec/prawn/document/bounding_box_spec.rb +546 -0
  159. data/spec/prawn/document/column_box_spec.rb +73 -0
  160. data/spec/prawn/document/security_spec.rb +173 -0
  161. data/spec/prawn/document_annotations_spec.rb +74 -0
  162. data/spec/prawn/document_destinations_spec.rb +13 -0
  163. data/spec/prawn/document_grid_spec.rb +96 -0
  164. data/spec/prawn/document_reference_spec.rb +25 -0
  165. data/spec/prawn/document_span_spec.rb +34 -0
  166. data/spec/prawn/document_spec.rb +751 -0
  167. data/spec/prawn/font_metric_cache_spec.rb +52 -0
  168. data/spec/prawn/font_spec.rb +513 -0
  169. data/spec/prawn/graphics/blend_mode_spec.rb +61 -0
  170. data/spec/prawn/graphics/transparency_spec.rb +79 -0
  171. data/spec/prawn/graphics_spec.rb +817 -0
  172. data/spec/prawn/graphics_stroke_styles_spec.rb +227 -0
  173. data/spec/{image_handler_spec.rb → prawn/image_handler_spec.rb} +13 -15
  174. data/spec/prawn/images/jpg_spec.rb +18 -0
  175. data/spec/prawn/images/png_spec.rb +281 -0
  176. data/spec/prawn/images_spec.rb +170 -0
  177. data/spec/prawn/measurements_extensions_spec.rb +22 -0
  178. data/spec/prawn/outline_spec.rb +408 -0
  179. data/spec/prawn/repeater_spec.rb +163 -0
  180. data/spec/prawn/soft_mask_spec.rb +72 -0
  181. data/spec/prawn/stamp_spec.rb +168 -0
  182. data/spec/prawn/text/box_spec.rb +1113 -0
  183. data/spec/prawn/text/formatted/arranger_spec.rb +464 -0
  184. data/spec/prawn/text/formatted/box_spec.rb +825 -0
  185. data/spec/prawn/text/formatted/fragment_spec.rb +341 -0
  186. data/spec/prawn/text/formatted/line_wrap_spec.rb +491 -0
  187. data/spec/prawn/text/formatted/parser_spec.rb +667 -0
  188. data/spec/prawn/text_draw_text_spec.rb +147 -0
  189. data/spec/prawn/text_rendering_mode_spec.rb +42 -0
  190. data/spec/prawn/text_spacing_spec.rb +93 -0
  191. data/spec/prawn/text_spec.rb +601 -0
  192. data/spec/prawn/text_with_inline_formatting_spec.rb +33 -0
  193. data/spec/{transformation_stack_spec.rb → prawn/transformation_stack_spec.rb} +21 -20
  194. data/spec/prawn/view_spec.rb +45 -0
  195. data/spec/spec_helper.rb +16 -16
  196. metadata +96 -151
  197. metadata.gz.sig +1 -0
  198. data/data/images/16bit.alpha +0 -0
  199. data/data/images/16bit.color +0 -0
  200. data/data/images/16bit.png +0 -0
  201. data/data/images/arrow.png +0 -0
  202. data/data/images/arrow2.png +0 -0
  203. data/data/images/blend_modes_bottom_layer.jpg +0 -0
  204. data/data/images/blend_modes_top_layer.jpg +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/indexed_transparency.png +0 -0
  213. data/data/images/indexed_transparency_alpha.dat +0 -0
  214. data/data/images/indexed_transparency_color.dat +0 -0
  215. data/data/images/letterhead.jpg +0 -0
  216. data/data/images/license.md +0 -8
  217. data/data/images/page_white_text.alpha +0 -0
  218. data/data/images/page_white_text.color +0 -0
  219. data/data/images/page_white_text.png +0 -0
  220. data/data/images/pigs.jpg +0 -0
  221. data/data/images/prawn.png +0 -0
  222. data/data/images/ruport.png +0 -0
  223. data/data/images/ruport_data.dat +0 -0
  224. data/data/images/ruport_transparent.png +0 -0
  225. data/data/images/ruport_type0.png +0 -0
  226. data/data/images/stef.jpg +0 -0
  227. data/data/images/tru256.bmp +0 -0
  228. data/data/images/web-links.dat +0 -1
  229. data/data/images/web-links.png +0 -0
  230. data/data/pdfs/complex_template.pdf +0 -0
  231. data/data/pdfs/contains_ttf_font.pdf +0 -0
  232. data/data/pdfs/encrypted.pdf +0 -0
  233. data/data/pdfs/form.pdf +1 -819
  234. data/data/pdfs/hexagon.pdf +0 -61
  235. data/data/pdfs/indirect_reference.pdf +0 -86
  236. data/data/pdfs/multipage_template.pdf +0 -127
  237. data/data/pdfs/nested_pages.pdf +0 -118
  238. data/data/pdfs/page_without_mediabox.pdf +0 -193
  239. data/data/pdfs/resources_as_indirect_object.pdf +0 -83
  240. data/data/pdfs/two_hexagons.pdf +0 -90
  241. data/data/pdfs/version_1_6.pdf +0 -61
  242. data/data/shift_jis_text.txt +0 -1
  243. data/spec/acceptance/png_spec.rb +0 -35
  244. data/spec/annotations_spec.rb +0 -67
  245. data/spec/blend_mode_spec.rb +0 -71
  246. data/spec/bounding_box_spec.rb +0 -501
  247. data/spec/column_box_spec.rb +0 -59
  248. data/spec/destinations_spec.rb +0 -13
  249. data/spec/document_spec.rb +0 -738
  250. data/spec/font_metric_cache_spec.rb +0 -52
  251. data/spec/font_spec.rb +0 -475
  252. data/spec/formatted_text_arranger_spec.rb +0 -452
  253. data/spec/formatted_text_box_spec.rb +0 -716
  254. data/spec/formatted_text_fragment_spec.rb +0 -299
  255. data/spec/graphics_spec.rb +0 -705
  256. data/spec/grid_spec.rb +0 -95
  257. data/spec/images_spec.rb +0 -167
  258. data/spec/inline_formatted_text_parser_spec.rb +0 -568
  259. data/spec/jpg_spec.rb +0 -23
  260. data/spec/line_wrap_spec.rb +0 -366
  261. data/spec/measurement_units_spec.rb +0 -22
  262. data/spec/outline_spec.rb +0 -409
  263. data/spec/png_spec.rb +0 -257
  264. data/spec/reference_spec.rb +0 -25
  265. data/spec/repeater_spec.rb +0 -154
  266. data/spec/security_spec.rb +0 -151
  267. data/spec/soft_mask_spec.rb +0 -78
  268. data/spec/span_spec.rb +0 -43
  269. data/spec/stamp_spec.rb +0 -179
  270. data/spec/stroke_styles_spec.rb +0 -208
  271. data/spec/text_at_spec.rb +0 -142
  272. data/spec/text_box_spec.rb +0 -1042
  273. data/spec/text_rendering_mode_spec.rb +0 -45
  274. data/spec/text_spacing_spec.rb +0 -93
  275. data/spec/text_spec.rb +0 -543
  276. data/spec/text_with_inline_formatting_spec.rb +0 -35
  277. data/spec/transparency_spec.rb +0 -91
  278. data/spec/view_spec.rb +0 -42
@@ -1,25 +1,22 @@
1
- # encoding: utf-8
2
- #
3
1
  # The image size can be set with the <code>:width</code> and
4
2
  # <code>:height</code> options.
5
3
  #
6
4
  # If only one of those is provided, the image will be scaled proportionally.
7
5
  # When both are provided, the image will be stretched to fit the dimensions
8
6
  # without maintaining the aspect ratio.
9
- #
10
- require File.expand_path(File.join(File.dirname(__FILE__),
11
- %w[.. example_helper]))
7
+
8
+ require_relative '../example_helper'
12
9
 
13
10
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
14
11
  Prawn::ManualBuilder::Example.generate(filename) do
15
- text "Scale by setting only the width"
16
- image "#{Prawn::DATADIR}/images/pigs.jpg", :width => 150
12
+ text 'Scale by setting only the width'
13
+ image "#{Prawn::DATADIR}/images/pigs.jpg", width: 150
17
14
  move_down 20
18
15
 
19
- text "Scale by setting only the height"
20
- image "#{Prawn::DATADIR}/images/pigs.jpg", :height => 100
16
+ text 'Scale by setting only the height'
17
+ image "#{Prawn::DATADIR}/images/pigs.jpg", height: 100
21
18
  move_down 20
22
19
 
23
- text "Stretch to fit the width and height provided"
24
- image "#{Prawn::DATADIR}/images/pigs.jpg", :width => 500, :height => 100
20
+ text 'Stretch to fit the width and height provided'
21
+ image "#{Prawn::DATADIR}/images/pigs.jpg", width: 500, height: 100
25
22
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # After defined the grid is there but nothing happens. To start taking effect
4
2
  # we need to use the grid boxes.
5
3
  #
@@ -7,15 +5,14 @@
7
5
  # received. With no arguments it will return the grid itself. With integers it
8
6
  # will return the grid box at those indices. With two arrays it will return a
9
7
  # multi-box spanning the region of the two grid boxes at the arrays indices.
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
8
+
9
+ require_relative '../example_helper'
13
10
 
14
11
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
12
  Prawn::ManualBuilder::Example.generate(filename) do
16
13
  # The grid only need to be defined once, but since all the examples should be
17
14
  # able to run alone we are repeating it on every example
18
- define_grid(:columns => 5, :rows => 8, :gutter => 10)
15
+ define_grid(columns: 5, rows: 8, gutter: 10)
19
16
 
20
17
  grid(4, 0).show
21
18
  grid(5, 1).show
@@ -1,25 +1,22 @@
1
- # encoding: utf-8
2
- #
3
1
  # Now that we know how to access the boxes we might as well add some content
4
2
  # to them.
5
3
  #
6
4
  # This can be done by taping into the bounding box for a given grid box or
7
5
  # multi-box with the <code>bounding_box</code> method.
8
- #
9
- require File.expand_path(File.join(File.dirname(__FILE__),
10
- %w[.. example_helper]))
6
+
7
+ require_relative '../example_helper'
11
8
 
12
9
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
13
10
  Prawn::ManualBuilder::Example.generate(filename) do
14
11
  # The grid only need to be defined once, but since all the examples should be
15
12
  # able to run alone we are repeating it on every example
16
- define_grid(:columns => 5, :rows => 8, :gutter => 10)
13
+ define_grid(columns: 5, rows: 8, gutter: 10)
17
14
 
18
15
  grid([5, 0], [7, 1]).bounding_box do
19
- text "Adding some content to this multi_box.\n" + " _ " * 200
16
+ text "Adding some content to this multi_box.\n" + ' _ ' * 200
20
17
  end
21
18
 
22
19
  grid(6, 3).bounding_box do
23
- text "Just a little snippet here.\n" + " _ " * 10
20
+ text "Just a little snippet here.\n" + ' _ ' * 10
24
21
  end
25
22
  end
@@ -1,25 +1,25 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for using grid layouts.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
2
 
8
- Prawn::ManualBuilder::Example.generate("layout.pdf", :page_size => "FOLIO") do
9
- package "layout" do |p|
10
- p.example "simple_grid"
11
- p.example "boxes"
12
- p.example "content"
3
+ require_relative '../example_helper'
4
+
5
+ Prawn::ManualBuilder::Example.generate('layout.pdf', page_size: 'FOLIO') do
6
+ package 'layout' do |p|
7
+ p.example 'simple_grid'
8
+ p.example 'boxes'
9
+ p.example 'content'
13
10
 
14
11
  p.intro do
15
- prose("Prawn has support for two-dimensional grid based layouts out of the box.
12
+ prose <<-END
13
+ Prawn has support for two-dimensional grid based layouts out of the box.
16
14
 
17
- The examples show:")
15
+ The examples show:
16
+ END
18
17
 
19
- list( "How to define the document grid",
20
- "How to configure the grid rows and columns gutters",
21
- "How to create boxes according to the grid"
22
- )
18
+ list(
19
+ 'How to define the document grid',
20
+ 'How to configure the grid rows and columns gutters',
21
+ 'How to create boxes according to the grid'
22
+ )
23
23
  end
24
24
  end
25
25
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The document grid on Prawn is just a table-like structure with a defined
4
2
  # number of rows and columns. There are some helpers to create boxes of content
5
3
  # based on the grid coordinates.
@@ -7,16 +5,15 @@
7
5
  # <code>define_grid</code> accepts the following options which are pretty much
8
6
  # self-explanatory: <code>:rows</code>, <code>:columns</code>,
9
7
  # <code>:gutter</code>, <code>:row_gutter</code>, <code>:column_gutter</code>
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
8
+
9
+ require_relative '../example_helper'
13
10
 
14
11
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
12
  Prawn::ManualBuilder::Example.generate(filename) do
16
13
  # The grid only need to be defined once, but since all the examples should be
17
14
  # able to run alone we are repeating it on every example
18
- define_grid(:columns => 5, :rows => 8, :gutter => 10)
19
- text "We defined the grid, roll over to the next page to see its outline"
15
+ define_grid(columns: 5, rows: 8, gutter: 10)
16
+ text 'We defined the grid, roll over to the next page to see its outline'
20
17
 
21
18
  start_new_page
22
19
  grid.show_all
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # We have already seen how to define an outline tree sequentially.
4
2
  #
5
3
  # If you'd like to add nodes to the middle of an outline tree the
@@ -16,9 +14,8 @@
16
14
  #
17
15
  # If the parent title provided is the title of a page. The page will be
18
16
  # converted into a section to receive the subsection created.
19
- #
20
- require File.expand_path(File.join(File.dirname(__FILE__),
21
- %w[.. example_helper]))
17
+
18
+ require_relative '../example_helper'
22
19
 
23
20
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
24
21
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -29,33 +26,33 @@ Prawn::ManualBuilder::Example.generate(filename) do
29
26
  end
30
27
 
31
28
  outline.define do
32
- section("Section 1", :destination => 1) do
33
- page :title => "Page 2", :destination => 2
34
- page :title => "Page 3", :destination => 3
29
+ section('Section 1', destination: 1) do
30
+ page title: 'Page 2', destination: 2
31
+ page title: 'Page 3', destination: 3
35
32
  end
36
33
  end
37
34
 
38
35
  # Now we will start adding nodes to the previous outline
39
- outline.add_subsection_to("Section 1", :first) do
40
- outline.section("Added later - first position") do
41
- outline.page :title => "Page 4", :destination => 4
42
- outline.page :title => "Page 5", :destination => 5
36
+ outline.add_subsection_to('Section 1', :first) do
37
+ outline.section('Added later - first position') do
38
+ outline.page title: 'Page 4', destination: 4
39
+ outline.page title: 'Page 5', destination: 5
43
40
  end
44
41
  end
45
42
 
46
- outline.add_subsection_to("Section 1") do
47
- outline.page :title => "Added later - last position",
48
- :destination => 6
43
+ outline.add_subsection_to('Section 1') do
44
+ outline.page title: 'Added later - last position',
45
+ destination: 6
49
46
  end
50
47
 
51
- outline.add_subsection_to("Added later - first position") do
52
- outline.page :title => "Another page added later",
53
- :destination => 7
48
+ outline.add_subsection_to('Added later - first position') do
49
+ outline.page title: 'Another page added later',
50
+ destination: 7
54
51
  end
55
52
 
56
53
  # The title provided is for a page which will be converted into a section
57
- outline.add_subsection_to("Page 3") do
58
- outline.page :title => "Last page added",
59
- :destination => 8
54
+ outline.add_subsection_to('Page 3') do
55
+ outline.page title: 'Last page added',
56
+ destination: 8
60
57
  end
61
58
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Another way to insert nodes into an existing outline is the
4
2
  # <code>insert_section_after</code> method.
5
3
  #
@@ -8,9 +6,8 @@
8
6
  #
9
7
  # As is the case with <code>add_subsection_to</code> the section added
10
8
  # doesn't need to be a section, it may be just a page.
11
- #
12
- require File.expand_path(File.join(File.dirname(__FILE__),
13
- %w[.. example_helper]))
9
+
10
+ require_relative '../example_helper'
14
11
 
15
12
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
16
13
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -21,27 +18,27 @@ Prawn::ManualBuilder::Example.generate(filename) do
21
18
  end
22
19
 
23
20
  outline.define do
24
- section("Section 1", :destination => 1) do
25
- page :title => "Page 2", :destination => 2
26
- page :title => "Page 3", :destination => 3
21
+ section('Section 1', destination: 1) do
22
+ page title: 'Page 2', destination: 2
23
+ page title: 'Page 3', destination: 3
27
24
  end
28
25
  end
29
26
 
30
27
  # Now we will start adding nodes to the previous outline
31
- outline.insert_section_after("Page 2") do
32
- outline.section("Section after Page 2") do
33
- outline.page :title => "Page 4", :destination => 4
28
+ outline.insert_section_after('Page 2') do
29
+ outline.section('Section after Page 2') do
30
+ outline.page title: 'Page 4', destination: 4
34
31
  end
35
32
  end
36
33
 
37
- outline.insert_section_after("Section 1") do
38
- outline.section("Section after Section 1") do
39
- outline.page :title => "Page 5", :destination => 5
34
+ outline.insert_section_after('Section 1') do
35
+ outline.section('Section after Section 1') do
36
+ outline.page title: 'Page 5', destination: 5
40
37
  end
41
38
  end
42
39
 
43
40
  # Adding just a page
44
- outline.insert_section_after("Page 3") do
45
- outline.page :title => "Page after Page 3", :destination => 6
41
+ outline.insert_section_after('Page 3') do
42
+ outline.page title: 'Page after Page 3', destination: 6
46
43
  end
47
44
  end
@@ -1,29 +1,31 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for defining the document outline.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
2
 
8
- Prawn::ManualBuilder::Example.generate("outline.pdf", :page_size => "FOLIO") do
9
- package "outline" do |p|
10
- p.section "Basics" do |s|
11
- s.example "sections_and_pages", :eval_source => false
3
+ require_relative '../example_helper'
4
+
5
+ Prawn::ManualBuilder::Example.generate('outline.pdf', page_size: 'FOLIO') do
6
+ package 'outline' do |p|
7
+ p.section 'Basics' do |s|
8
+ s.example 'sections_and_pages', eval_source: false
12
9
  end
13
10
 
14
- p.section "Adding nodes later" do |s|
15
- s.example "add_subsection_to", :eval_source => false
16
- s.example "insert_section_after", :eval_source => false
11
+ p.section 'Adding nodes later' do |s|
12
+ s.example 'add_subsection_to', eval_source: false
13
+ s.example 'insert_section_after', eval_source: false
17
14
  end
18
15
 
19
16
  p.intro do
20
- prose("The outline of a PDF document is the table of contents tab you see to the right or left of your PDF viewer.
17
+ prose <<-END
18
+ The outline of a PDF document is the table of contents tab you see to
19
+ the right or left of your PDF viewer.
21
20
 
22
- The examples include:")
21
+ The examples include:
22
+ END
23
23
 
24
- list( "How to define sections and pages",
25
- "How to insert sections and/or pages to a previously defined outline structure"
26
- )
24
+ list(
25
+ 'How to define sections and pages',
26
+ 'How to insert sections and/or pages to a previously defined outline '\
27
+ 'structure'
28
+ )
27
29
  end
28
30
  end
29
31
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The document outline tree is the set of links used to navigate through the
4
2
  # various document sections and pages.
5
3
  #
@@ -23,9 +21,8 @@
23
21
  # <code>section</code> and <code>page</code> may also be used without the
24
22
  # <code>define</code> method but they will need to instantiate the
25
23
  # <code>outline</code> object every time.
26
- #
27
- require File.expand_path(File.join(File.dirname(__FILE__),
28
- %w[.. example_helper]))
24
+
25
+ require_relative '../example_helper'
29
26
 
30
27
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
31
28
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -36,32 +33,32 @@ Prawn::ManualBuilder::Example.generate(filename) do
36
33
  end
37
34
 
38
35
  outline.define do
39
- section("Section 1", :destination => 1) do
40
- page :title => "Page 2", :destination => 2
41
- page :title => "Page 3", :destination => 3
36
+ section('Section 1', destination: 1) do
37
+ page title: 'Page 2', destination: 2
38
+ page title: 'Page 3', destination: 3
42
39
  end
43
40
 
44
- section("Section 2", :destination => 4) do
45
- page :title => "Page 5", :destination => 5
41
+ section('Section 2', destination: 4) do
42
+ page title: 'Page 5', destination: 5
46
43
 
47
- section("Subsection 2.1", :destination => 6, :closed => true) do
48
- page :title => "Page 7", :destination => 7
44
+ section('Subsection 2.1', destination: 6, closed: true) do
45
+ page title: 'Page 7', destination: 7
49
46
  end
50
47
  end
51
48
  end
52
49
 
53
50
  # Outside of the define block
54
- outline.section("Section 3", :destination => 8) do
55
- outline.page :title => "Page 9", :destination => 9
51
+ outline.section('Section 3', destination: 8) do
52
+ outline.page title: 'Page 9', destination: 9
56
53
  end
57
54
 
58
- outline.page :title => "Page 10", :destination => 10
55
+ outline.page title: 'Page 10', destination: 10
59
56
 
60
57
  # Section and Pages without links. While a section without a link may be
61
58
  # useful to group some pages, a page without a link is useless
62
- outline.update do # update is an alias to define
63
- section("Section without link") do
64
- page :title => "Page without link"
59
+ outline.update do # update is an alias to define
60
+ section('Section without link') do
61
+ page title: 'Page without link'
65
62
  end
66
63
  end
67
64
  end
@@ -1,32 +1,34 @@
1
- # encoding: utf-8
2
- #
3
1
  # Below is the code to generate page numbers that alternate being rendered
4
2
  # on the right and left side of the page. The first page will have a "1" in
5
3
  # the bottom right corner. The second page will have a "2" in the bottom
6
4
  # left corner of the page. The third a "3" in the bottom right, etc.
7
- require File.expand_path(File.join(File.dirname(__FILE__),
8
- %w[.. example_helper]))
5
+
6
+ require_relative '../example_helper'
9
7
 
10
8
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
11
9
  Prawn::ManualBuilder::Example.generate(filename) do
12
- text "This is the first page!"
10
+ text 'This is the first page!'
13
11
 
14
12
  10.times do
15
13
  start_new_page
16
- text "Here comes yet another page."
14
+ text 'Here comes yet another page.'
17
15
  end
18
16
 
19
- string = "<page>"
20
- odd_options = { :at => [bounds.right - 150, 0],
21
- :width => 150,
22
- :align => :right,
23
- :page_filter => :odd,
24
- :start_count_at => 1 }
25
- even_options = { :at => [0, bounds.left],
26
- :width => 150,
27
- :align => :left,
28
- :page_filter => :even,
29
- :start_count_at => 2 }
17
+ string = '<page>'
18
+ odd_options = {
19
+ at: [bounds.right - 150, 0],
20
+ width: 150,
21
+ align: :right,
22
+ page_filter: :odd,
23
+ start_count_at: 1
24
+ }
25
+ even_options = {
26
+ at: [0, bounds.left],
27
+ width: 150,
28
+ align: :left,
29
+ page_filter: :even,
30
+ start_count_at: 2
31
+ }
30
32
  number_pages string, odd_options
31
33
  number_pages string, even_options
32
34
  end