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,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # There are two drawing primitives in Prawn: <code>fill</code> and
4
2
  # <code>stroke</code>.
5
3
  #
@@ -17,9 +15,8 @@
17
15
  # Most of the methods which define drawing paths have methods of the same name
18
16
  # starting with stroke_ and fill_ which create the drawing path and then stroke
19
17
  # or fill it.
20
- #
21
- require File.expand_path(File.join(File.dirname(__FILE__),
22
- %w[.. example_helper]))
18
+
19
+ require_relative '../example_helper'
23
20
 
24
21
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
25
22
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn's fill operators (<code>fill</code> and <code>fill_and_stroke</code>
4
2
  # both accept a <code>:fill_rule</code> option. These rules determine which
5
3
  # parts of the page are counted as "inside" vs. "outside" the path. There are
@@ -15,9 +13,8 @@
15
13
  #
16
14
  # The differences between the fill rules only come into play with complex
17
15
  # paths; they are identical for simple shapes.
18
- #
19
- require File.expand_path(File.join(File.dirname(__FILE__),
20
- %w[.. example_helper]))
16
+
17
+ require_relative '../example_helper'
21
18
 
22
19
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
23
20
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -26,13 +23,13 @@ Prawn::ManualBuilder::Example.generate(filename) do
26
23
  stroke_color 'ff0000'
27
24
  line_width 2
28
25
 
29
- text_box "Nonzero Winding Number", :at => [50, 215],
30
- :width => 170,
31
- :align => :center
26
+ text_box 'Nonzero Winding Number', at: [50, 215],
27
+ width: 170,
28
+ align: :center
32
29
  polygon(*pentagram.map { |x, y| [x + 50, y] })
33
30
  fill_and_stroke
34
31
 
35
- text_box "Even-Odd", :at => [330, 215], :width => 170, :align => :center
32
+ text_box 'Even-Odd', at: [330, 215], width: 170, align: :center
36
33
  polygon(*pentagram.map { |x, y| [x + 330, y] })
37
- fill_and_stroke(:fill_rule => :even_odd)
34
+ fill_and_stroke(fill_rule: :even_odd)
38
35
  end
@@ -1,37 +1,41 @@
1
- # encoding: utf-8
2
- #
3
1
  # Note that because of the way PDF renders radial gradients in order to get
4
2
  # solid fill your start circle must be fully inside your end circle.
5
3
  # Otherwise you will get triangle fill like illustrated in the example below.
6
4
 
7
- require File.expand_path(File.join(File.dirname(__FILE__),
8
- %w[.. example_helper]))
5
+ require_relative '../example_helper'
9
6
 
10
7
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
11
8
  Prawn::ManualBuilder::Example.generate(filename) do
12
- stroke_axis
13
9
  self.line_width = 10
14
10
 
15
- fill_gradient [50, 300], [150, 200], 'ff0000', '0000ff'
16
- fill_rectangle [50, 300], 100, 100
11
+ # Linear Gradients
12
+ fill_gradient [0, 250], [100, 150], 'ff0000', '0000ff'
13
+ fill_rectangle [0, 250], 100, 100
17
14
 
18
- stroke_gradient [200, 200], [300, 300], '00ffff', 'ffff00'
19
- stroke_rectangle [200, 300], 100, 100
15
+ stroke_gradient [150, 150], [250, 250], '00ffff', 'ffff00'
16
+ stroke_rectangle [150, 250], 100, 100
20
17
 
21
- fill_gradient [350, 300], [450, 200], 'ff0000', '0000ff'
22
- stroke_gradient [350, 200], [450, 300], '00ffff', 'ffff00'
23
- fill_and_stroke_rectangle [350, 300], 100, 100
18
+ fill_gradient [300, 250], [400, 150], 'ff0000', '0000ff'
19
+ stroke_gradient [300, 150], [400, 250], '00ffff', 'ffff00'
20
+ fill_and_stroke_rectangle [300, 250], 100, 100
24
21
 
25
- fill_gradient [100, 100], 0, [100, 100], 70.71, 'ff0000', '0000ff'
26
- fill_rectangle [50, 150], 100, 100
22
+ rotate 45, origin: [500, 200] do
23
+ stops = { 0 => 'ff0000', 0.6 => '999900', 0.8 => '00cc00', 1 => '4444ff' }
24
+ fill_gradient from: [460, 240], to: [540, 160], stops: stops
25
+ fill_rectangle [460, 240], 80, 80
26
+ end
27
27
 
28
- stroke_gradient [250, 100], 45, [250, 100], 70.71, '00ffff', 'ffff00'
29
- stroke_rectangle [200, 150], 100, 100
28
+ # Radial gradients
29
+ fill_gradient [50, 50], 0, [50, 50], 70.71, 'ff0000', '0000ff'
30
+ fill_rectangle [0, 100], 100, 100
30
31
 
31
- stroke_gradient [400, 100], 45, [400, 100], 70.71, '00ffff', 'ffff00'
32
- fill_gradient [400, 100], 0, [400, 100], 70.71, 'ff0000', '0000ff'
33
- fill_and_stroke_rectangle [350, 150], 100, 100
32
+ stroke_gradient [200, 50], 45, [200, 50], 70.71, '00ffff', 'ffff00'
33
+ stroke_rectangle [150, 100], 100, 100
34
34
 
35
- fill_gradient [500, 300], 15, [500, 50], 0, 'ff0000', '0000ff'
36
- fill_rectangle [485, 300], 30, 250
35
+ stroke_gradient [350, 50], 45, [350, 50], 70.71, '00ffff', 'ffff00'
36
+ fill_gradient [350, 50], 0, [350, 50], 70.71, 'ff0000', '0000ff'
37
+ fill_and_stroke_rectangle [300, 100], 100, 100
38
+
39
+ fill_gradient [500, 100], 50, [500, 0], 0, 'ff0000', '0000ff'
40
+ fill_rectangle [450, 100], 100, 100
37
41
  end
@@ -1,56 +1,62 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for the Graphics package.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
-
8
- Prawn::ManualBuilder::Example.generate("graphics.pdf", :page_size => "FOLIO") do
9
- package "graphics" do |p|
10
- p.section "Basics" do |s|
11
- s.example "helper"
12
- s.example "fill_and_stroke"
2
+
3
+ require_relative '../example_helper'
4
+
5
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
6
+ Prawn::ManualBuilder::Example.generate(filename, page_size: 'FOLIO') do
7
+ package 'graphics' do |p|
8
+ p.section 'Basics' do |s|
9
+ s.example 'helper'
10
+ s.example 'fill_and_stroke'
13
11
  end
14
12
 
15
- p.section "Shapes" do |s|
16
- s.example "lines_and_curves"
17
- s.example "common_lines"
18
- s.example "rectangle"
19
- s.example "polygon"
20
- s.example "circle_and_ellipse"
13
+ p.section 'Shapes' do |s|
14
+ s.example 'lines_and_curves'
15
+ s.example 'common_lines'
16
+ s.example 'rectangle'
17
+ s.example 'polygon'
18
+ s.example 'circle_and_ellipse'
21
19
  end
22
20
 
23
- p.section "Fill and Stroke settings" do |s|
24
- s.example "line_width"
25
- s.example "stroke_cap"
26
- s.example "stroke_join"
27
- s.example "stroke_dash"
28
- s.example "color"
29
- s.example "gradients"
30
- s.example "transparency"
31
- s.example "soft_masks"
32
- s.example "blend_mode"
33
- s.example "fill_rules"
21
+ p.section 'Fill and Stroke settings' do |s|
22
+ s.example 'line_width'
23
+ s.example 'stroke_cap'
24
+ s.example 'stroke_join'
25
+ s.example 'stroke_dash'
26
+ s.example 'color'
27
+ s.example 'gradients'
28
+ s.example 'transparency'
29
+ s.example 'soft_masks'
30
+ s.example 'blend_mode'
31
+ s.example 'fill_rules'
34
32
  end
35
33
 
36
- p.section "Transformations" do |s|
37
- s.example "rotate"
38
- s.example "translate"
39
- s.example "scale"
34
+ p.section 'Transformations' do |s|
35
+ s.example 'rotate'
36
+ s.example 'translate'
37
+ s.example 'scale'
40
38
  end
41
39
 
42
40
  p.intro do
43
- prose("Here we show all the drawing methods provided by Prawn. Use them to draw the most beautiful imaginable things.
44
-
45
- Most of the content that you'll add to your pdf document will use the graphics package. Even text is rendered on a page just like a rectangle so even if you never use any of the shapes described here you should at least read the basic examples.
46
-
47
- The examples show:")
48
-
49
- list( "All the possible ways that you can fill or stroke shapes on a page",
50
- "How to draw all the shapes that Prawn has to offer from a measly line to a mighty polygon or ellipse",
51
- "The configuration options for stroking lines and filling shapes",
52
- "How to apply transformations to your drawing space"
53
- )
41
+ prose <<-END
42
+ Here we show all the drawing methods provided by Prawn. Use them to draw
43
+ the most beautiful imaginable things.
44
+
45
+ Most of the content that you'll add to your pdf document will use the
46
+ graphics package. Even text is rendered on a page just like a rectangle
47
+ so even if you never use any of the shapes described here you should at
48
+ least read the basic examples.
49
+
50
+ The examples show:
51
+ END
52
+
53
+ list(
54
+ 'All the possible ways that you can fill or stroke shapes on a page',
55
+ 'How to draw all the shapes that Prawn has to offer from a measly '\
56
+ 'line to a mighty polygon or ellipse',
57
+ 'The configuration options for stroking lines and filling shapes',
58
+ 'How to apply transformations to your drawing space'
59
+ )
54
60
  end
55
61
  end
56
62
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # To produce this manual we use the <code>stroke_axis</code> helper method
4
2
  # within the examples.
5
3
  #
@@ -10,15 +8,18 @@
10
8
  # Note that the examples define a custom <code>:height</code> option so that
11
9
  # only the example canvas is used (as seen with the output of the first line of
12
10
  # the example code).
13
- #
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
11
+
12
+ require_relative '../example_helper'
16
13
 
17
14
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
15
  Prawn::ManualBuilder::Example.generate(filename) do
19
16
  stroke_axis
20
- stroke_axis(:at => [70, 70], :height => 200, :step_length => 50,
21
- :negative_axes_length => 5, :color => '0000FF')
22
- stroke_axis(:at => [140, 140], :width => 200, :height => cursor.to_i - 140,
23
- :step_length => 20, :negative_axes_length => 40, :color => 'FF00')
17
+ stroke_axis(
18
+ at: [70, 70], height: 200, step_length: 50,
19
+ negative_axes_length: 5, color: '0000FF'
20
+ )
21
+ stroke_axis(
22
+ at: [140, 140], width: 200, height: cursor.to_i - 140,
23
+ step_length: 20, negative_axes_length: 40, color: 'FF0000'
24
+ )
24
25
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>line_width=</code> method sets the stroke width for subsequent
4
2
  # stroke calls.
5
3
  #
@@ -7,9 +5,9 @@
7
5
  # assignment is a local temporary, rather than a setter method, if you are using
8
6
  # the block call to <code>Prawn::Document.generate</code> without passing params
9
7
  # you will need to call <code>line_width</code> on self.
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
8
+
9
+ # rubocop: disable Lint/UselessAssignment
10
+ require_relative '../example_helper'
13
11
 
14
12
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
13
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -19,13 +17,13 @@ Prawn::ManualBuilder::Example.generate(filename) do
19
17
 
20
18
  3.times do |i|
21
19
  case i
22
- when 0 then line_width = 10 # This call will have no effect
20
+ when 0 then line_width = 10 # This call will have no effect
23
21
  when 1 then self.line_width = 10
24
22
  when 2 then self.line_width = 25
25
23
  end
26
24
 
27
25
  stroke do
28
- horizontal_line 50, 150, :at => y
26
+ horizontal_line 50, 150, at: y
29
27
  rectangle [275, y + 25], 50, 50
30
28
  circle [500, y], 25
31
29
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn supports drawing both lines and curves starting either at the current
4
2
  # position, or from a specified starting position.
5
3
  #
@@ -14,9 +12,8 @@
14
12
  #
15
13
  # Both curve methods define a Bezier curve bounded by two aditional points
16
14
  # provided as the <code>:bounds</code> param.
17
- #
18
- require File.expand_path(File.join(File.dirname(__FILE__),
19
- %w[.. example_helper]))
15
+
16
+ require_relative '../example_helper'
20
17
 
21
18
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
22
19
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -29,13 +26,13 @@ Prawn::ManualBuilder::Example.generate(filename) do
29
26
  line_to 100, 100
30
27
  line_to 0, 100
31
28
 
32
- curve_to [150, 250], :bounds => [[20, 200], [120, 200]]
33
- curve_to [200, 0], :bounds => [[150, 200], [450, 10]]
29
+ curve_to [150, 250], bounds: [[20, 200], [120, 200]]
30
+ curve_to [200, 0], bounds: [[150, 200], [450, 10]]
34
31
  end
35
32
 
36
33
  # line and curve
37
34
  stroke do
38
35
  line [300, 200], [400, 50]
39
- curve [500, 0], [400, 200], :bounds => [[600, 300], [300, 390]]
36
+ curve [500, 0], [400, 200], bounds: [[600, 300], [300, 390]]
40
37
  end
41
38
  end
@@ -1,14 +1,11 @@
1
- # encoding: utf-8
2
- #
3
1
  # Drawing polygons in Prawn is easy, just pass a sequence of points to one of
4
2
  # the polygon family of methods.
5
3
  #
6
4
  # Just like <code>rounded_rectangle</code> we also have
7
5
  # <code>rounded_polygon</code>. The only difference is the radius param comes
8
6
  # before the polygon points.
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
@@ -18,12 +15,11 @@ Prawn::ManualBuilder::Example.generate(filename) do
18
15
  stroke_polygon [50, 200], [50, 300], [150, 300]
19
16
 
20
17
  # Hexagon
21
- fill_polygon [50, 150], [150, 200], [250, 150],
22
- [250, 50], [150, 0], [50, 50]
18
+ fill_polygon [50, 150], [150, 200], [250, 150], [250, 50], [150, 0], [50, 50]
23
19
 
24
20
  # Pentagram
25
21
  pentagon_points = [500, 100], [430, 5], [319, 41], [319, 159], [430, 195]
26
- pentagram_points = [0, 2, 4, 1, 3].map{ |i| pentagon_points[i] }
22
+ pentagram_points = [0, 2, 4, 1, 3].map { |i| pentagon_points[i] }
27
23
 
28
24
  stroke_rounded_polygon(20, *pentagram_points)
29
25
  end
@@ -1,13 +1,10 @@
1
- # encoding: utf-8
2
- #
3
1
  # To draw a rectangle, just provide the upper-left corner, width and height to
4
2
  # the <code>rectangle</code> method.
5
3
  #
6
4
  # There's also <code>rounded_rectangle</code>. Just provide an additional radius
7
5
  # value for the rounded corners.
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
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # This transformation is used to rotate the user space. Give it an angle
4
2
  # and an <code>:origin</code> point about which to rotate and a block.
5
3
  # Everything inside the block will be drawn with the rotated coordinates.
@@ -7,9 +5,8 @@
7
5
  # The angle is in degrees.
8
6
  #
9
7
  # If you omit the <code>:origin</code> option the page origin will be used.
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
@@ -18,9 +15,9 @@ Prawn::ManualBuilder::Example.generate(filename) do
18
15
  fill_circle [250, 200], 2
19
16
 
20
17
  12.times do |i|
21
- rotate(i * 30, :origin => [250, 200]) do
18
+ rotate(i * 30, origin: [250, 200]) do
22
19
  stroke_rectangle [350, 225], 100, 50
23
- draw_text "Rotated #{i * 30}°", :size => 10, :at => [360, 205]
20
+ draw_text "Rotated #{i * 30}°", size: 10, at: [360, 205]
24
21
  end
25
22
  end
26
23
  end
@@ -1,13 +1,10 @@
1
- # encoding: utf-8
2
- #
3
1
  # This transformation is used to scale the user space. Give it an scale factor
4
2
  # and an <code>:origin</code> point and everything inside the block will be
5
3
  # scaled using the origin point as reference.
6
4
  #
7
5
  # If you omit the <code>:origin</code> option the page origin will be used.
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
@@ -20,24 +17,24 @@ Prawn::ManualBuilder::Example.generate(filename) do
20
17
  y = 200
21
18
 
22
19
  stroke_rectangle [x, y], width, height
23
- text_box "reference rectangle", :at => [x + 10, y - 10], :width => width - 20
20
+ text_box 'reference rectangle', at: [x + 10, y - 10], width: width - 20
24
21
 
25
- scale(2, :origin => [x, y]) do
22
+ scale(2, origin: [x, y]) do
26
23
  stroke_rectangle [x, y], width, height
27
- text_box "rectangle scaled from upper-left corner",
28
- :at => [x, y - height - 5],
29
- :width => width
24
+ text_box 'rectangle scaled from upper-left corner',
25
+ at: [x, y - height - 5],
26
+ width: width
30
27
  end
31
28
 
32
29
  x = 350
33
30
 
34
31
  stroke_rectangle [x, y], width, height
35
- text_box "reference rectangle", :at => [x + 10, y - 10], :width => width - 20
32
+ text_box 'reference rectangle', at: [x + 10, y - 10], width: width - 20
36
33
 
37
- scale(2, :origin => [x + width / 2, y - height / 2]) do
34
+ scale(2, origin: [x + width / 2, y - height / 2]) do
38
35
  stroke_rectangle [x, y], width, height
39
- text_box "rectangle scaled from center",
40
- :at => [x, y - height - 5],
41
- :width => width
36
+ text_box 'rectangle scaled from center',
37
+ at: [x, y - height - 5],
38
+ width: width
42
39
  end
43
40
  end