prawn-graph 0.0.2 → 0.0.3

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 (314) hide show
  1. data/README.markdown +51 -2
  2. data/Rakefile +16 -2
  3. data/lib/prawn/graph.rb +1 -4
  4. data/lib/prawn/graph/bar.rb +39 -143
  5. data/lib/prawn/graph/base.rb +207 -0
  6. data/lib/prawn/graph/errors.rb +2 -1
  7. data/lib/prawn/graph/grid.rb +5 -0
  8. data/lib/prawn/graph/line.rb +40 -1
  9. data/lib/prawn/graph/theme.rb +24 -0
  10. metadata +19 -312
  11. data/vendor/prawn-core/COPYING +0 -340
  12. data/vendor/prawn-core/HACKING +0 -46
  13. data/vendor/prawn-core/LICENSE +0 -56
  14. data/vendor/prawn-core/README +0 -138
  15. data/vendor/prawn-core/Rakefile +0 -75
  16. data/vendor/prawn-core/bench/afm_text_bench.rb +0 -18
  17. data/vendor/prawn-core/bench/png_type_6.rb +0 -15
  18. data/vendor/prawn-core/bench/ttf_text_bench.rb +0 -19
  19. data/vendor/prawn-core/bugs/indentation_across_pagebreaks.rb +0 -15
  20. data/vendor/prawn-core/bugs/resolved/canvas_sets_y_to_0.rb +0 -15
  21. data/vendor/prawn-core/bugs/resolved/png_barcode_issue.rb +0 -11
  22. data/vendor/prawn-core/bugs/resolved/transaction_page_number_issue_79.rb +0 -21
  23. data/vendor/prawn-core/bugs/resolved/ttf_fails_in_transactions.rb +0 -24
  24. data/vendor/prawn-core/data/encodings/win_ansi.txt +0 -29
  25. data/vendor/prawn-core/data/fonts/Action Man.dfont +0 -0
  26. data/vendor/prawn-core/data/fonts/Activa.ttf +0 -0
  27. data/vendor/prawn-core/data/fonts/Chalkboard.ttf +0 -0
  28. data/vendor/prawn-core/data/fonts/Courier-Bold.afm +0 -342
  29. data/vendor/prawn-core/data/fonts/Courier-BoldOblique.afm +0 -342
  30. data/vendor/prawn-core/data/fonts/Courier-Oblique.afm +0 -342
  31. data/vendor/prawn-core/data/fonts/Courier.afm +0 -342
  32. data/vendor/prawn-core/data/fonts/DejaVuSans.ttf +0 -0
  33. data/vendor/prawn-core/data/fonts/Dustismo_Roman.ttf +0 -0
  34. data/vendor/prawn-core/data/fonts/Helvetica-Bold.afm +0 -2827
  35. data/vendor/prawn-core/data/fonts/Helvetica-BoldOblique.afm +0 -2827
  36. data/vendor/prawn-core/data/fonts/Helvetica-Oblique.afm +0 -3051
  37. data/vendor/prawn-core/data/fonts/Helvetica.afm +0 -3051
  38. data/vendor/prawn-core/data/fonts/MustRead.html +0 -19
  39. data/vendor/prawn-core/data/fonts/Symbol.afm +0 -213
  40. data/vendor/prawn-core/data/fonts/Times-Bold.afm +0 -2588
  41. data/vendor/prawn-core/data/fonts/Times-BoldItalic.afm +0 -2384
  42. data/vendor/prawn-core/data/fonts/Times-Italic.afm +0 -2667
  43. data/vendor/prawn-core/data/fonts/Times-Roman.afm +0 -2419
  44. data/vendor/prawn-core/data/fonts/ZapfDingbats.afm +0 -225
  45. data/vendor/prawn-core/data/fonts/comicsans.ttf +0 -0
  46. data/vendor/prawn-core/data/fonts/gkai00mp.ttf +0 -0
  47. data/vendor/prawn-core/data/images/16bit.alpha +0 -0
  48. data/vendor/prawn-core/data/images/16bit.dat +0 -0
  49. data/vendor/prawn-core/data/images/16bit.png +0 -0
  50. data/vendor/prawn-core/data/images/arrow.png +0 -0
  51. data/vendor/prawn-core/data/images/arrow2.png +0 -0
  52. data/vendor/prawn-core/data/images/barcode_issue.png +0 -0
  53. data/vendor/prawn-core/data/images/dice.alpha +0 -0
  54. data/vendor/prawn-core/data/images/dice.dat +0 -0
  55. data/vendor/prawn-core/data/images/dice.png +0 -0
  56. data/vendor/prawn-core/data/images/dice_interlaced.png +0 -0
  57. data/vendor/prawn-core/data/images/fractal.jpg +0 -0
  58. data/vendor/prawn-core/data/images/letterhead.jpg +0 -0
  59. data/vendor/prawn-core/data/images/page_white_text.alpha +0 -0
  60. data/vendor/prawn-core/data/images/page_white_text.dat +0 -0
  61. data/vendor/prawn-core/data/images/page_white_text.png +0 -0
  62. data/vendor/prawn-core/data/images/pigs.jpg +0 -0
  63. data/vendor/prawn-core/data/images/rails.dat +0 -0
  64. data/vendor/prawn-core/data/images/rails.png +0 -0
  65. data/vendor/prawn-core/data/images/ruport.png +0 -0
  66. data/vendor/prawn-core/data/images/ruport_data.dat +0 -0
  67. data/vendor/prawn-core/data/images/ruport_transparent.png +0 -0
  68. data/vendor/prawn-core/data/images/ruport_type0.png +0 -0
  69. data/vendor/prawn-core/data/images/stef.jpg +0 -0
  70. data/vendor/prawn-core/data/images/tru256.bmp +0 -0
  71. data/vendor/prawn-core/data/images/web-links.dat +0 -1
  72. data/vendor/prawn-core/data/images/web-links.png +0 -0
  73. data/vendor/prawn-core/data/shift_jis_text.txt +0 -1
  74. data/vendor/prawn-core/examples/bounding_box/bounding_boxes.rb +0 -43
  75. data/vendor/prawn-core/examples/bounding_box/indentation.rb +0 -34
  76. data/vendor/prawn-core/examples/bounding_box/russian_boxes.rb +0 -36
  77. data/vendor/prawn-core/examples/bounding_box/stretched_nesting.rb +0 -67
  78. data/vendor/prawn-core/examples/column_box/column_box_example.rb +0 -43
  79. data/vendor/prawn-core/examples/example_helper.rb +0 -3
  80. data/vendor/prawn-core/examples/general/background.rb +0 -23
  81. data/vendor/prawn-core/examples/general/canvas.rb +0 -15
  82. data/vendor/prawn-core/examples/general/context_sensitive_headers.rb +0 -37
  83. data/vendor/prawn-core/examples/general/float.rb +0 -11
  84. data/vendor/prawn-core/examples/general/margin.rb +0 -36
  85. data/vendor/prawn-core/examples/general/measurement_units.rb +0 -51
  86. data/vendor/prawn-core/examples/general/metadata-info.rb +0 -16
  87. data/vendor/prawn-core/examples/general/multi_page_layout.rb +0 -18
  88. data/vendor/prawn-core/examples/general/outlines.rb +0 -50
  89. data/vendor/prawn-core/examples/general/page_geometry.rb +0 -31
  90. data/vendor/prawn-core/examples/general/page_numbering.rb +0 -15
  91. data/vendor/prawn-core/examples/general/repeaters.rb +0 -47
  92. data/vendor/prawn-core/examples/general/stamp.rb +0 -41
  93. data/vendor/prawn-core/examples/graphics/basic_images.rb +0 -23
  94. data/vendor/prawn-core/examples/graphics/cmyk.rb +0 -12
  95. data/vendor/prawn-core/examples/graphics/curves.rb +0 -11
  96. data/vendor/prawn-core/examples/graphics/hexagon.rb +0 -13
  97. data/vendor/prawn-core/examples/graphics/image_fit.rb +0 -15
  98. data/vendor/prawn-core/examples/graphics/image_flow.rb +0 -37
  99. data/vendor/prawn-core/examples/graphics/image_position.rb +0 -17
  100. data/vendor/prawn-core/examples/graphics/line.rb +0 -32
  101. data/vendor/prawn-core/examples/graphics/png_types.rb +0 -22
  102. data/vendor/prawn-core/examples/graphics/polygons.rb +0 -16
  103. data/vendor/prawn-core/examples/graphics/remote_images.rb +0 -12
  104. data/vendor/prawn-core/examples/graphics/rounded_polygons.rb +0 -19
  105. data/vendor/prawn-core/examples/graphics/rounded_rectangle.rb +0 -20
  106. data/vendor/prawn-core/examples/graphics/ruport_style_helpers.rb +0 -19
  107. data/vendor/prawn-core/examples/graphics/stroke_bounds.rb +0 -20
  108. data/vendor/prawn-core/examples/graphics/stroke_cap_and_join.rb +0 -45
  109. data/vendor/prawn-core/examples/graphics/stroke_dash.rb +0 -42
  110. data/vendor/prawn-core/examples/graphics/transformations.rb +0 -52
  111. data/vendor/prawn-core/examples/graphics/transparency.rb +0 -26
  112. data/vendor/prawn-core/examples/m17n/chinese_text_wrapping.rb +0 -17
  113. data/vendor/prawn-core/examples/m17n/euro.rb +0 -15
  114. data/vendor/prawn-core/examples/m17n/sjis.rb +0 -28
  115. data/vendor/prawn-core/examples/m17n/utf8.rb +0 -13
  116. data/vendor/prawn-core/examples/m17n/win_ansi_charset.rb +0 -54
  117. data/vendor/prawn-core/examples/text/alignment.rb +0 -18
  118. data/vendor/prawn-core/examples/text/dfont.rb +0 -48
  119. data/vendor/prawn-core/examples/text/family_based_styling.rb +0 -24
  120. data/vendor/prawn-core/examples/text/font_calculations.rb +0 -91
  121. data/vendor/prawn-core/examples/text/font_size.rb +0 -33
  122. data/vendor/prawn-core/examples/text/indent_paragraphs.rb +0 -18
  123. data/vendor/prawn-core/examples/text/kerning.rb +0 -30
  124. data/vendor/prawn-core/examples/text/rotated.rb +0 -98
  125. data/vendor/prawn-core/examples/text/simple_text.rb +0 -17
  126. data/vendor/prawn-core/examples/text/simple_text_ttf.rb +0 -17
  127. data/vendor/prawn-core/examples/text/span.rb +0 -29
  128. data/vendor/prawn-core/examples/text/text_box.rb +0 -88
  129. data/vendor/prawn-core/examples/text/text_box_returning_excess.rb +0 -51
  130. data/vendor/prawn-core/examples/text/text_flow.rb +0 -67
  131. data/vendor/prawn-core/lib/prawn/byte_string.rb +0 -7
  132. data/vendor/prawn-core/lib/prawn/compatibility.rb +0 -51
  133. data/vendor/prawn-core/lib/prawn/core.rb +0 -87
  134. data/vendor/prawn-core/lib/prawn/core/page.rb +0 -88
  135. data/vendor/prawn-core/lib/prawn/core/text.rb +0 -65
  136. data/vendor/prawn-core/lib/prawn/document.rb +0 -596
  137. data/vendor/prawn-core/lib/prawn/document/annotations.rb +0 -65
  138. data/vendor/prawn-core/lib/prawn/document/bounding_box.rb +0 -402
  139. data/vendor/prawn-core/lib/prawn/document/column_box.rb +0 -113
  140. data/vendor/prawn-core/lib/prawn/document/destinations.rb +0 -92
  141. data/vendor/prawn-core/lib/prawn/document/graphics_state.rb +0 -49
  142. data/vendor/prawn-core/lib/prawn/document/internals.rb +0 -153
  143. data/vendor/prawn-core/lib/prawn/document/page_geometry.rb +0 -136
  144. data/vendor/prawn-core/lib/prawn/document/snapshot.rb +0 -80
  145. data/vendor/prawn-core/lib/prawn/document/span.rb +0 -55
  146. data/vendor/prawn-core/lib/prawn/encoding.rb +0 -121
  147. data/vendor/prawn-core/lib/prawn/errors.rb +0 -83
  148. data/vendor/prawn-core/lib/prawn/font.rb +0 -329
  149. data/vendor/prawn-core/lib/prawn/font/afm.rb +0 -217
  150. data/vendor/prawn-core/lib/prawn/font/dfont.rb +0 -34
  151. data/vendor/prawn-core/lib/prawn/font/ttf.rb +0 -341
  152. data/vendor/prawn-core/lib/prawn/graphics.rb +0 -321
  153. data/vendor/prawn-core/lib/prawn/graphics/cap_style.rb +0 -38
  154. data/vendor/prawn-core/lib/prawn/graphics/color.rb +0 -205
  155. data/vendor/prawn-core/lib/prawn/graphics/dash.rb +0 -71
  156. data/vendor/prawn-core/lib/prawn/graphics/join_style.rb +0 -38
  157. data/vendor/prawn-core/lib/prawn/graphics/transformation.rb +0 -157
  158. data/vendor/prawn-core/lib/prawn/graphics/transparency.rb +0 -99
  159. data/vendor/prawn-core/lib/prawn/images.rb +0 -337
  160. data/vendor/prawn-core/lib/prawn/images/jpg.rb +0 -46
  161. data/vendor/prawn-core/lib/prawn/images/png.rb +0 -219
  162. data/vendor/prawn-core/lib/prawn/literal_string.rb +0 -14
  163. data/vendor/prawn-core/lib/prawn/measurement_extensions.rb +0 -46
  164. data/vendor/prawn-core/lib/prawn/measurements.rb +0 -71
  165. data/vendor/prawn-core/lib/prawn/name_tree.rb +0 -166
  166. data/vendor/prawn-core/lib/prawn/object_store.rb +0 -93
  167. data/vendor/prawn-core/lib/prawn/outline.rb +0 -278
  168. data/vendor/prawn-core/lib/prawn/pdf_object.rb +0 -83
  169. data/vendor/prawn-core/lib/prawn/reference.rb +0 -92
  170. data/vendor/prawn-core/lib/prawn/repeater.rb +0 -129
  171. data/vendor/prawn-core/lib/prawn/stamp.rb +0 -128
  172. data/vendor/prawn-core/lib/prawn/text.rb +0 -271
  173. data/vendor/prawn-core/lib/prawn/text/box.rb +0 -414
  174. data/vendor/prawn-core/meta/Rakefile +0 -36
  175. data/vendor/prawn-core/meta/lib/prawn.rb +0 -2
  176. data/vendor/prawn-core/reference_pdfs/alignment.pdf +0 -229
  177. data/vendor/prawn-core/reference_pdfs/background.pdf +0 -0
  178. data/vendor/prawn-core/reference_pdfs/basic_images.pdf +0 -0
  179. data/vendor/prawn-core/reference_pdfs/bounding_boxes.pdf +0 -128
  180. data/vendor/prawn-core/reference_pdfs/canvas.pdf +0 -78
  181. data/vendor/prawn-core/reference_pdfs/chinese_flow.pdf +0 -0
  182. data/vendor/prawn-core/reference_pdfs/cmyk.pdf +0 -0
  183. data/vendor/prawn-core/reference_pdfs/column_box.pdf +0 -3671
  184. data/vendor/prawn-core/reference_pdfs/context_sensitive_headers.pdf +0 -2331
  185. data/vendor/prawn-core/reference_pdfs/curves.pdf +0 -62
  186. data/vendor/prawn-core/reference_pdfs/dfont.pdf +0 -0
  187. data/vendor/prawn-core/reference_pdfs/euro.pdf +0 -75
  188. data/vendor/prawn-core/reference_pdfs/family_style.pdf +0 -286
  189. data/vendor/prawn-core/reference_pdfs/flow.pdf +0 -964
  190. data/vendor/prawn-core/reference_pdfs/font_calculations.pdf +0 -0
  191. data/vendor/prawn-core/reference_pdfs/font_size.pdf +0 -142
  192. data/vendor/prawn-core/reference_pdfs/hexagon.pdf +0 -61
  193. data/vendor/prawn-core/reference_pdfs/image-flow.pdf +0 -0
  194. data/vendor/prawn-core/reference_pdfs/image_fit.pdf +0 -0
  195. data/vendor/prawn-core/reference_pdfs/image_position.pdf +0 -0
  196. data/vendor/prawn-core/reference_pdfs/indentation.pdf +0 -124
  197. data/vendor/prawn-core/reference_pdfs/kerning.pdf +0 -0
  198. data/vendor/prawn-core/reference_pdfs/landscape_a4.pdf +0 -52
  199. data/vendor/prawn-core/reference_pdfs/landscape_legal.pdf +0 -52
  200. data/vendor/prawn-core/reference_pdfs/landscape_letter.pdf +0 -52
  201. data/vendor/prawn-core/reference_pdfs/lines.pdf +0 -116
  202. data/vendor/prawn-core/reference_pdfs/margin.pdf +0 -3850
  203. data/vendor/prawn-core/reference_pdfs/measurement_units.pdf +0 -4667
  204. data/vendor/prawn-core/reference_pdfs/metadata-info.pdf +0 -88
  205. data/vendor/prawn-core/reference_pdfs/multi-layout.pdf +0 -209
  206. data/vendor/prawn-core/reference_pdfs/page_with_numbering.pdf +0 -156
  207. data/vendor/prawn-core/reference_pdfs/png_types.pdf +0 -0
  208. data/vendor/prawn-core/reference_pdfs/portrait_a4.pdf +0 -52
  209. data/vendor/prawn-core/reference_pdfs/portrait_legal.pdf +0 -52
  210. data/vendor/prawn-core/reference_pdfs/portrait_letter.pdf +0 -52
  211. data/vendor/prawn-core/reference_pdfs/pretty_polygons.pdf +0 -122
  212. data/vendor/prawn-core/reference_pdfs/remote_images.pdf +0 -0
  213. data/vendor/prawn-core/reference_pdfs/ruport.pdf +0 -101
  214. data/vendor/prawn-core/reference_pdfs/russian_boxes.pdf +0 -2780
  215. data/vendor/prawn-core/reference_pdfs/simple_text.pdf +0 -136
  216. data/vendor/prawn-core/reference_pdfs/simple_text_ttf.pdf +0 -0
  217. data/vendor/prawn-core/reference_pdfs/sjis.pdf +0 -0
  218. data/vendor/prawn-core/reference_pdfs/span.pdf +0 -1975
  219. data/vendor/prawn-core/reference_pdfs/stamp.pdf +0 -649
  220. data/vendor/prawn-core/reference_pdfs/stretched_nesting.pdf +0 -200
  221. data/vendor/prawn-core/reference_pdfs/stroke_bounds.pdf +0 -135
  222. data/vendor/prawn-core/reference_pdfs/stroke_cap_and_join.pdf +0 -80
  223. data/vendor/prawn-core/reference_pdfs/stroke_dash.pdf +0 -457
  224. data/vendor/prawn-core/reference_pdfs/text_box.pdf +0 -962
  225. data/vendor/prawn-core/reference_pdfs/text_box_returning_excess.pdf +0 -271
  226. data/vendor/prawn-core/reference_pdfs/transparency.pdf +0 -347
  227. data/vendor/prawn-core/reference_pdfs/utf8.pdf +0 -0
  228. data/vendor/prawn-core/reference_pdfs/win-ansi.pdf +0 -6172
  229. data/vendor/prawn-core/spec/annotations_spec.rb +0 -90
  230. data/vendor/prawn-core/spec/bounding_box_spec.rb +0 -185
  231. data/vendor/prawn-core/spec/destinations_spec.rb +0 -15
  232. data/vendor/prawn-core/spec/document_spec.rb +0 -408
  233. data/vendor/prawn-core/spec/font_spec.rb +0 -314
  234. data/vendor/prawn-core/spec/graphics_spec.rb +0 -438
  235. data/vendor/prawn-core/spec/images_spec.rb +0 -79
  236. data/vendor/prawn-core/spec/jpg_spec.rb +0 -25
  237. data/vendor/prawn-core/spec/measurement_units_spec.rb +0 -23
  238. data/vendor/prawn-core/spec/name_tree_spec.rb +0 -112
  239. data/vendor/prawn-core/spec/object_store_spec.rb +0 -75
  240. data/vendor/prawn-core/spec/outline_spec.rb +0 -229
  241. data/vendor/prawn-core/spec/pdf_object_spec.rb +0 -122
  242. data/vendor/prawn-core/spec/png_spec.rb +0 -236
  243. data/vendor/prawn-core/spec/reference_spec.rb +0 -82
  244. data/vendor/prawn-core/spec/repeater_spec.rb +0 -96
  245. data/vendor/prawn-core/spec/snapshot_spec.rb +0 -138
  246. data/vendor/prawn-core/spec/span_spec.rb +0 -49
  247. data/vendor/prawn-core/spec/spec_helper.rb +0 -24
  248. data/vendor/prawn-core/spec/stamp_spec.rb +0 -108
  249. data/vendor/prawn-core/spec/stroke_styles_spec.rb +0 -152
  250. data/vendor/prawn-core/spec/text_at_spec.rb +0 -119
  251. data/vendor/prawn-core/spec/text_box_spec.rb +0 -603
  252. data/vendor/prawn-core/spec/text_spec.rb +0 -308
  253. data/vendor/prawn-core/spec/transparency_spec.rb +0 -75
  254. data/vendor/prawn-core/vendor/pdf-inspector/README +0 -18
  255. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector.rb +0 -26
  256. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/extgstate.rb +0 -18
  257. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +0 -131
  258. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/page.rb +0 -25
  259. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/text.rb +0 -31
  260. data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +0 -19
  261. data/vendor/prawn-core/vendor/ttfunk/data/fonts/DejaVuSans.ttf +0 -0
  262. data/vendor/prawn-core/vendor/ttfunk/data/fonts/comicsans.ttf +0 -0
  263. data/vendor/prawn-core/vendor/ttfunk/example.rb +0 -45
  264. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk.rb +0 -102
  265. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/directory.rb +0 -17
  266. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +0 -88
  267. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +0 -69
  268. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/reader.rb +0 -44
  269. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/resource_file.rb +0 -78
  270. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset.rb +0 -18
  271. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/base.rb +0 -141
  272. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +0 -46
  273. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +0 -48
  274. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +0 -63
  275. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +0 -51
  276. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset_collection.rb +0 -72
  277. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table.rb +0 -46
  278. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap.rb +0 -34
  279. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +0 -54
  280. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +0 -126
  281. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +0 -79
  282. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf.rb +0 -64
  283. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +0 -81
  284. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +0 -37
  285. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/head.rb +0 -44
  286. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hhea.rb +0 -41
  287. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +0 -47
  288. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern.rb +0 -79
  289. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +0 -62
  290. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/loca.rb +0 -43
  291. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/maxp.rb +0 -40
  292. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/name.rb +0 -119
  293. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/os2.rb +0 -78
  294. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post.rb +0 -91
  295. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +0 -43
  296. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +0 -35
  297. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +0 -23
  298. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +0 -17
  299. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +0 -17
  300. data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/simple.rb +0 -14
  301. data/vendor/prawn-core/www/index.html +0 -196
  302. data/vendor/prawn-core/www/media/bounding_boxes.pdf +0 -146
  303. data/vendor/prawn-core/www/media/bounding_boxes.png +0 -0
  304. data/vendor/prawn-core/www/media/bounding_boxes_out.png +0 -0
  305. data/vendor/prawn-core/www/media/fancy_table.pdf +0 -350
  306. data/vendor/prawn-core/www/media/image.pdf +0 -0
  307. data/vendor/prawn-core/www/media/images.png +0 -0
  308. data/vendor/prawn-core/www/media/prawn_logo.png +0 -0
  309. data/vendor/prawn-core/www/media/tables.png +0 -0
  310. data/vendor/prawn-core/www/media/utf8.pdf +0 -0
  311. data/vendor/prawn-core/www/media/utf8.png +0 -0
  312. data/vendor/prawn-core/www/prawn-Chinese.html +0 -113
  313. data/vendor/prawn-core/www/prawn.css +0 -86
  314. data/vendor/prawn-core/www/twilight.css +0 -266
data/README.markdown CHANGED
@@ -1,3 +1,52 @@
1
- # prawn-graph - Easy Graphing for Prawn
1
+ # Prawn::Graph - Easy Graphing for Prawn
2
2
 
3
- More content to come soon, I promise!
3
+ Prawn::Graph copyrighted free software by Ryan Stenhouse
4
+ <ryan@ryanstenhouse.eu> with contributions form the community.
5
+
6
+ It extends Prawn::Core to add the ability for people to natively
7
+ draw graphs and charts in their PDFs.
8
+
9
+ Because Prawn::Graph only uses the native PDF drawing functions
10
+ exposed by Prawn, it removes the need to depend on projects like
11
+ Gruff to insert graphs in your documents. The results may not be
12
+ as pretty (yet), but the file-size differences are dramatic.
13
+
14
+ By default, graphs are drawn in monochrome, as that's likely how
15
+ they will be printed. You can pass an option to each of the graph
16
+ methods which will draw them in colour.
17
+
18
+ **Notice!** Much like Prawn, this software should be considered to
19
+ be in early alpha state at best. It's not recommended for use in
20
+ a production environment unless you're happy to put up with bugs and
21
+ are willing to help fix them!
22
+
23
+ ## Branches
24
+
25
+ The master branch of this repository tracks edge Prawn and will
26
+ be updated to reflect any changes there. If you need to work on
27
+ a version which is compatible with the current stable release,
28
+ 0.7.*, then please use the <tt>stable-compat</tt> branch instead.
29
+
30
+ ## Installing & Using through RubyGems
31
+
32
+ Installing and running prawn-graph is very easy:
33
+
34
+ * <tt>gem install prawn prawn-graph</tt>
35
+
36
+ Will give you the latest 'stable' version of Prawn and the latest
37
+ compatible version of prawn-graph.
38
+
39
+ Using graphs in your PDF is as straightforward as:
40
+
41
+ <pre>
42
+ require 'rubygems'
43
+ require 'prawn/core'
44
+ require 'prawn/graph'
45
+
46
+ data = [ ['A', 10], ['B', 11], ['C' 12] ]
47
+
48
+ Prawn::Document.generate('test.pdf') do
49
+ test 'Graph Example'
50
+ bar_graph data at => [10,10]
51
+ end
52
+ </pre>
data/Rakefile CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
  require "rake/gempackagetask"
4
+ require "rake/rdoctask"
4
5
 
5
- PRAWN_GRAPH_VERSION = '0.0.2'
6
+ PRAWN_GRAPH_VERSION = '0.0.3'
6
7
 
7
8
  spec = Gem::Specification.new do |spec|
8
9
  spec.name = "prawn-graph"
@@ -17,15 +18,28 @@ spec = Gem::Specification.new do |spec|
17
18
  spec.has_rdoc = true
18
19
  spec.extra_rdoc_files = %w{README.markdown}
19
20
  spec.rdoc_options << '--title' << 'Prawn Documentation' <<
20
- '--main' << 'README.markdown' << '-q'
21
+ '--main' << 'README' << '-q'
21
22
  spec.author = "Ryan Stenhouse"
22
23
  spec.email = " ryan@ryanstenhouse.eu"
23
24
  spec.rubyforge_project = "prawn"
25
+ spec.add_dependency 'prawn'
24
26
  spec.homepage = "http://ryanstenhouse.eu"
25
27
  spec.description = <<END_DESC
26
28
  An extension to Prawn that provides the ability to draw basic graphs and charts natively in your PDFs.
27
29
  END_DESC
28
30
  end
31
+
32
+ desc "genrates documentation"
33
+ Rake::RDocTask.new do |rdoc|
34
+ rdoc.rdoc_files.include( "README.markdown",
35
+ "COPYING",
36
+ "LICENSE",
37
+ "HACKING", "lib/" )
38
+ rdoc.main = "README.markdown"
39
+ rdoc.rdoc_dir = "doc/html"
40
+ rdoc.title = "Prawn Documentation"
41
+ end
42
+
29
43
 
30
44
  Rake::GemPackageTask.new(spec) do |pkg|
31
45
  pkg.need_zip = true
data/lib/prawn/graph.rb CHANGED
@@ -2,6 +2,7 @@ require 'bigdecimal'
2
2
 
3
3
  require File.dirname(__FILE__) + '/graph/errors'
4
4
  require File.dirname(__FILE__) + '/graph/chart'
5
+ require File.dirname(__FILE__) + '/graph/base'
5
6
  require File.dirname(__FILE__) + '/graph/grid'
6
7
  require File.dirname(__FILE__) + '/graph/bar'
7
8
  require File.dirname(__FILE__) + '/graph/line'
@@ -10,10 +11,6 @@ module Prawn
10
11
 
11
12
  class Document
12
13
 
13
- # Adds compatibility with the current stable version of prawn
14
- #
15
- alias draw_text text
16
-
17
14
  # Draws a fairly simple bar chart. Data should be passed in as an array of
18
15
  # arrays, much like how Tables are dealt with:
19
16
  #
@@ -1,48 +1,48 @@
1
1
  module Prawn
2
2
  module Chart
3
- class Bar
4
-
5
- attr_accessor :grid, :headings, :values, :highest_value, :document, :colour
3
+
4
+ # Prawn::Chart::Bar plots its values as a Bar graph, relatively
5
+ # sized to fit within the space defined by the Prawn::Chart::Grid
6
+ # associated with it.
7
+ #
8
+ # Call to new will return a new instance of Prawn::Chart::Bar ready to
9
+ # be rendered.
10
+ #
11
+ # Takes an Array of +data+, which should contain complete rows of data for
12
+ # values to be plotted; a reference to a +document+ which should be an
13
+ # instance of Prawn::Document and an +options+ with at least a value for :at
14
+ # specified.
15
+ #
16
+ # Options are:
17
+ #
18
+ # :at , which should be an Array representing the point at which the graph
19
+ # should be drawn.
20
+ #
21
+ # :title, the title for this graph, wil be rendered centered to the top of
22
+ # the Grid.
23
+ #
24
+ # :label_x, a label to be shown along the X axis of he graph, rendered centered
25
+ # on the grid.
26
+ #
27
+ # :label_y, a label to be shown along the Y axis of he graph, rendered centered
28
+ # on the grid and rotated to be perpendicular to the axis.
29
+ #
30
+ # Data should be formatted like:
31
+ #
32
+ # [
33
+ # [ 'Column Heading', SomeValue ],
34
+ # [ 'Column Heading', SomeValue ],
35
+ # [ 'Column Heading', SomeValue ],
36
+ # [ 'Column Heading', SomeValue ],
37
+ # [ 'Column Heading', SomeValue ],
38
+ # [ 'Column Heading', SomeValue ]
39
+ # ]
40
+ #
41
+ class Bar < Base
6
42
 
7
- def initialize(data, document, options = {})
8
- if options[:at].nil? || options[:at].empty?
9
- raise Prawn::Errors::NoGraphStartSet,
10
- "you must specify options[:at] as the coordinates wher you" +
11
- " wish this graph to be drawn from."
12
- end
13
- opts = { :width => 500, :height => 200, :spacing => 20 }.merge(options)
14
- (@headings, @values, @highest_value) = process_the data
15
- (grid_x_start, grid_y_start, grid_width, grid_height) = parse_sizing_from opts
16
- @colour = (!opts[:use_color].nil? || !opts[:use_colour].nil?)
17
- @document = document
18
- @grid = Prawn::Chart::Grid.new(grid_x_start, grid_y_start, grid_width, grid_height, opts[:spacing], document)
19
- end
20
43
 
21
- def draw
22
- @grid.draw
23
- label_axes
24
- if @title
25
- draw_title
26
- end
27
- plot_values
28
- if @x_label
29
- draw_x_axis_label
30
- end
31
- if @y_label
32
- draw_y_axis_label
33
- end
34
- reset
35
- end
36
-
37
44
  private
38
45
 
39
- def reset
40
- @document.line_width 1
41
- @document.stroke_color '000000'
42
- @document.fill_color '000000'
43
- @document.move_to @grid.point
44
- end
45
-
46
46
  def plot_values
47
47
  base_x = @grid.start_x + 1
48
48
  base_y = @grid.start_y + 1
@@ -63,110 +63,6 @@ module Prawn
63
63
  end
64
64
  end
65
65
 
66
- def label_axes
67
- base_x = @grid.start_x + 1
68
- base_y = @grid.start_y + 1
69
-
70
- # Put the values up the Y Axis
71
- #
72
- @document.draw_text @highest_value, :at => [base_x - 15, base_y + @grid.height], :size => 5
73
- @document.draw_text '0', :at => [base_x - 15, base_y ], :size => 5
74
-
75
- # Put the column headings along the X Axis
76
- #
77
- point_spacing = calculate_plot_spacing
78
- last_position = base_x + (point_spacing / 2)
79
- @headings.each do |heading|
80
- @document.draw_text heading, :at => [last_position, base_y - 15 ], :size => 5
81
- last_position += point_spacing
82
- end
83
- end
84
-
85
- def draw_x_axis_label
86
- x_coord = calculate_x_axis_center_point(@x_label, 8)
87
- y_coord = @grid.start_y - 30
88
- @document.draw_text @x_label, :at => [x_coord, y_coord] ,:size => 8
89
- end
90
-
91
- def draw_y_axis_label
92
- y_coord = calculate_y_axis_center_point(@y_label, 8)
93
- x_coord = @grid.start_x - 30
94
- @document.draw_text @y_label, :at => [x_coord, y_coord] ,:size => 8, :rotate => 90
95
- end
96
-
97
- def draw_title
98
- x_coord = calculate_x_axis_center_point(@title, 10)
99
- y_coord = @grid.start_y + @grid.height + 10
100
- @document.draw_text @title, :at => [x_coord, y_coord] ,:size => 10
101
- end
102
-
103
- def parse_sizing_from(o)
104
- x_offset = 15
105
- y_offset = 0
106
- move_y_up = 0
107
- grid_width = o[:width]
108
- grid_height = o[:height]
109
-
110
- # Make room for the title if we're choosing to Render it.
111
- #
112
- if o[:title]
113
- @title = o[:title]
114
- y_offset += 10
115
- end
116
-
117
- # Make room for X Axis labels if we're using them.
118
- #
119
- if o[:label_x]
120
- y_offset += 30
121
- move_y_up += 30
122
- @x_label = o[:label_x]
123
- end
124
-
125
- # Make room for Y Axis labels if we're using them.
126
- #
127
- if o[:label_y]
128
- @y_label = o[:label_y]
129
- x_offset += 15
130
- end
131
-
132
- # Return the values calculated here.
133
- #
134
- [ (o[:at][0] + x_offset), (o[:at][1] + move_y_up), (grid_width - x_offset), (grid_height - y_offset) ]
135
- end
136
-
137
- def process_the(data_array)
138
- col = []
139
- val = []
140
- data_array.each { |i| val << i[1]; col << i[0] }
141
- [ col, val ,val.sort.last ]
142
- end
143
-
144
- def calculate_x_axis_center_point(text, text_size, graph_start_x = @grid.start_x, graph_width = @grid.width)
145
- ((graph_start_x + (graph_width / 2)) - ((text.length * text_size) / 4))
146
- end
147
- alias calculate_x_axis_centre_point calculate_x_axis_center_point
148
-
149
- def calculate_y_axis_center_point(text, text_size, graph_start_y = @grid.start_y, graph_height = @grid.height)
150
- ((graph_start_y + (graph_height / 2)) - ((text.length * text_size) / 4))
151
- end
152
- alias calculate_y_axis_centre_point calculate_y_axis_center_point
153
-
154
- def calculate_plot_spacing
155
- (@grid.width / @values.nitems)
156
- end
157
-
158
- def calculate_bar_width
159
- calculate_plot_spacing / 2
160
- end
161
-
162
- def calculate_point_height_from(column_value)
163
- cv = BigDecimal("#{column_value}")
164
- hv = BigDecimal("#{@highest_value}")
165
- gh = BigDecimal("#{@grid.height}")
166
- percentage = (cv / (hv / 100))
167
- ((gh / 100) * percentage).to_i
168
- end
169
-
170
66
  end
171
67
  end
172
68
  end
@@ -0,0 +1,207 @@
1
+ module Prawn
2
+ module Chart
3
+
4
+ # Prawn::Chart::Base implements the common methods shared by most of the graphs
5
+ # and charts whcih will need to be plotted.
6
+ #
7
+ # All Prawn::Chart::Base instances and their children will have the following
8
+ # associated with them:
9
+ #
10
+ # 1. A Prawn::Chart::Grid which is where the graph will be drawn
11
+ # 2. A refernce to the Prawn::Document being affected
12
+ # 3. A set of data to be plotted.
13
+ #
14
+ # A public draw method is available which does what it says on the tin and...
15
+ # well.. draws the graph on the document it has a reference to.
16
+ #
17
+ class Base
18
+
19
+ attr_accessor :grid, :headings, :values, :highest_value, :document, :colour
20
+
21
+ # Returns a new instance of a graph to be drawn, really only useful for the
22
+ # subclasses which actually have a plot_values method declared so the data
23
+ # is actually rendered as a graph.
24
+ #
25
+ # Takes an Array of +data+, which should contain complete rows of data for
26
+ # values to be plotted; a reference to a +document+ which should be an
27
+ # instance of Prawn::Document and an +options+ with at least a value for :at
28
+ # specified.
29
+ #
30
+ # Options are:
31
+ #
32
+ # :at , which should be an Array representing the point at which the graph
33
+ # should be drawn.
34
+ #
35
+ # :title, the title for this graph, wil be rendered centered to the top of
36
+ # the Grid.
37
+ #
38
+ # :label_x, a label to be shown along the X axis of he graph, rendered centered
39
+ # on the grid.
40
+ #
41
+ # :label_y, a label to be shown along the Y axis of he graph, rendered centered
42
+ # on the grid and rotated to be perpendicular to the axis.
43
+ #
44
+ def initialize(data, document, options = {})
45
+ if options[:at].nil? || options[:at].empty?
46
+ raise Prawn::Errors::NoGraphStartSet,
47
+ "you must specify options[:at] as the coordinates wher you" +
48
+ " wish this graph to be drawn from."
49
+ end
50
+ opts = { :width => 500, :height => 200, :spacing => 20 }.merge(options)
51
+ (@headings, @values, @highest_value) = process_the data
52
+ (grid_x_start, grid_y_start, grid_width, grid_height) = parse_sizing_from opts
53
+ @colour = (!opts[:use_color].nil? || !opts[:use_colour].nil?)
54
+ @document = document
55
+ @grid = Prawn::Chart::Grid.new(grid_x_start, grid_y_start, grid_width, grid_height, opts[:spacing], document)
56
+ end
57
+
58
+ # Draws the graph on the document which we have a reference to.
59
+ #
60
+ def draw
61
+ @grid.draw
62
+ label_axes
63
+ if @title
64
+ draw_title
65
+ end
66
+ plot_values
67
+ if @x_label
68
+ draw_x_axis_label
69
+ end
70
+ if @y_label
71
+ draw_y_axis_label
72
+ end
73
+ reset
74
+ end
75
+
76
+ private
77
+
78
+ def label_axes
79
+ base_x = @grid.start_x + 1
80
+ base_y = @grid.start_y + 1
81
+
82
+ # Put the values up the Y Axis
83
+ #
84
+ @document.draw_text @highest_value, :at => [base_x - 15, base_y + @grid.height], :size => 5
85
+ @document.draw_text '0', :at => [base_x - 15, base_y ], :size => 5
86
+
87
+ # Put the column headings along the X Axis
88
+ #
89
+ point_spacing = calculate_plot_spacing
90
+ last_position = base_x + (point_spacing / 2)
91
+ @headings.each do |heading|
92
+ @document.draw_text heading, :at => [last_position, base_y - 15 ], :size => 5
93
+ last_position += point_spacing
94
+ end
95
+ end
96
+
97
+ def draw_title
98
+ x_coord = calculate_x_axis_center_point(@title, 10)
99
+ y_coord = @grid.start_y + @grid.height + 10
100
+ @document.draw_text @title, :at => [x_coord, y_coord] ,:size => 10
101
+ end
102
+
103
+ def draw_x_axis_label
104
+ x_coord = calculate_x_axis_center_point(@x_label, 8)
105
+ y_coord = @grid.start_y - 30
106
+ @document.draw_text @x_label, :at => [x_coord, y_coord] ,:size => 8
107
+ end
108
+
109
+ def draw_y_axis_label
110
+ y_coord = calculate_y_axis_center_point(@y_label, 8)
111
+ x_coord = @grid.start_x - 30
112
+ @document.draw_text @y_label, :at => [x_coord, y_coord] ,:size => 8, :rotate => 90
113
+ end
114
+
115
+ # All subclasses of Prawn::Chart::Base must implement thier own plot_values
116
+ # method, which does the actual real heavy lifting of drawing the graph.
117
+ #
118
+ def plot_values
119
+ raise Prawn::Errors::NoPlotValuesMethod, 'subclasses of Prawn::Chart::Base must implement '
120
+ + 'their own plot_values method.'
121
+ end
122
+
123
+ def reset
124
+ @document.line_width 1
125
+ @document.stroke_color '000000'
126
+ @document.fill_color '000000'
127
+ @document.move_to @grid.point
128
+ end
129
+
130
+
131
+ # Utility methods for dealing with working out where things should be
132
+ # the calculations and such done here are all very rough, but are
133
+ # sufficient for now to plot just what we need.
134
+ #
135
+
136
+
137
+ def parse_sizing_from(o)
138
+ x_offset = 15
139
+ y_offset = 0
140
+ move_y_up = 0
141
+ grid_width = o[:width]
142
+ grid_height = o[:height]
143
+
144
+ # Make room for the title if we're choosing to Render it.
145
+ #
146
+ if o[:title]
147
+ @title = o[:title]
148
+ y_offset += 10
149
+ end
150
+
151
+ # Make room for X Axis labels if we're using them.
152
+ #
153
+ if o[:label_x]
154
+ y_offset += 30
155
+ move_y_up += 30
156
+ @x_label = o[:label_x]
157
+ end
158
+
159
+ # Make room for Y Axis labels if we're using them.
160
+ #
161
+ if o[:label_y]
162
+ @y_label = o[:label_y]
163
+ x_offset += 15
164
+ end
165
+
166
+ # Return the values calculated here.
167
+ #
168
+ [ (o[:at][0] + x_offset), (o[:at][1] + move_y_up), (grid_width - x_offset), (grid_height - y_offset) ]
169
+ end
170
+
171
+ def process_the(data_array)
172
+ col = []
173
+ val = []
174
+ data_array.each { |i| val << i[1]; col << i[0] }
175
+ [ col, val ,val.sort.last ]
176
+ end
177
+
178
+ def calculate_x_axis_center_point(text, text_size, graph_start_x = @grid.start_x, graph_width = @grid.width)
179
+ ((graph_start_x + (graph_width / 2)) - ((text.length * text_size) / 4))
180
+ end
181
+ alias calculate_x_axis_centre_point calculate_x_axis_center_point
182
+
183
+ def calculate_y_axis_center_point(text, text_size, graph_start_y = @grid.start_y, graph_height = @grid.height)
184
+ ((graph_start_y + (graph_height / 2)) - ((text.length * text_size) / 4))
185
+ end
186
+ alias calculate_y_axis_centre_point calculate_y_axis_center_point
187
+
188
+ def calculate_plot_spacing
189
+ (@grid.width / @values.nitems)
190
+ end
191
+
192
+ def calculate_bar_width
193
+ calculate_plot_spacing / 2
194
+ end
195
+
196
+ def calculate_point_height_from(column_value)
197
+ cv = BigDecimal("#{column_value}")
198
+ hv = BigDecimal("#{@highest_value}")
199
+ gh = BigDecimal("#{@grid.height}")
200
+ percentage = (cv / (hv / 100))
201
+ ((gh / 100) * percentage).to_i
202
+ end
203
+
204
+
205
+ end
206
+ end
207
+ end