gruff 0.4.0-java

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 (584) hide show
  1. data/.gitignore +7 -0
  2. data/.travis.yml +14 -0
  3. data/Gemfile +10 -0
  4. data/History.txt +193 -0
  5. data/MIT-LICENSE +22 -0
  6. data/Manifest.txt +81 -0
  7. data/README.md +139 -0
  8. data/RELEASE.md +92 -0
  9. data/Rakefile +218 -0
  10. data/assets/bubble.png +0 -0
  11. data/assets/city_scene/background/0000.png +0 -0
  12. data/assets/city_scene/background/0600.png +0 -0
  13. data/assets/city_scene/background/2000.png +0 -0
  14. data/assets/city_scene/clouds/cloudy.png +0 -0
  15. data/assets/city_scene/clouds/partly_cloudy.png +0 -0
  16. data/assets/city_scene/clouds/stormy.png +0 -0
  17. data/assets/city_scene/grass/default.png +0 -0
  18. data/assets/city_scene/haze/true.png +0 -0
  19. data/assets/city_scene/number_sample/1.png +0 -0
  20. data/assets/city_scene/number_sample/2.png +0 -0
  21. data/assets/city_scene/number_sample/default.png +0 -0
  22. data/assets/city_scene/sky/0000.png +0 -0
  23. data/assets/city_scene/sky/0200.png +0 -0
  24. data/assets/city_scene/sky/0400.png +0 -0
  25. data/assets/city_scene/sky/0600.png +0 -0
  26. data/assets/city_scene/sky/0800.png +0 -0
  27. data/assets/city_scene/sky/1000.png +0 -0
  28. data/assets/city_scene/sky/1200.png +0 -0
  29. data/assets/city_scene/sky/1400.png +0 -0
  30. data/assets/city_scene/sky/1500.png +0 -0
  31. data/assets/city_scene/sky/1700.png +0 -0
  32. data/assets/city_scene/sky/2000.png +0 -0
  33. data/assets/pc306715.jpg +0 -0
  34. data/assets/plastik/blue.png +0 -0
  35. data/assets/plastik/green.png +0 -0
  36. data/assets/plastik/red.png +0 -0
  37. data/gruff.gemspec +36 -0
  38. data/init.rb +2 -0
  39. data/lib/gruff.rb +32 -0
  40. data/lib/gruff/accumulator_bar.rb +18 -0
  41. data/lib/gruff/area.rb +51 -0
  42. data/lib/gruff/bar.rb +108 -0
  43. data/lib/gruff/bar_conversion.rb +46 -0
  44. data/lib/gruff/base.rb +1169 -0
  45. data/lib/gruff/bezier.rb +46 -0
  46. data/lib/gruff/bullet.rb +111 -0
  47. data/lib/gruff/deprecated.rb +39 -0
  48. data/lib/gruff/dot.rb +125 -0
  49. data/lib/gruff/line.rb +242 -0
  50. data/lib/gruff/mini/bar.rb +37 -0
  51. data/lib/gruff/mini/legend.rb +109 -0
  52. data/lib/gruff/mini/pie.rb +36 -0
  53. data/lib/gruff/mini/side_bar.rb +35 -0
  54. data/lib/gruff/net.rb +138 -0
  55. data/lib/gruff/photo_bar.rb +100 -0
  56. data/lib/gruff/pie.rb +124 -0
  57. data/lib/gruff/scatter.rb +264 -0
  58. data/lib/gruff/scene.rb +209 -0
  59. data/lib/gruff/side_bar.rb +138 -0
  60. data/lib/gruff/side_stacked_bar.rb +97 -0
  61. data/lib/gruff/spider.rb +131 -0
  62. data/lib/gruff/stacked_area.rb +67 -0
  63. data/lib/gruff/stacked_bar.rb +57 -0
  64. data/lib/gruff/stacked_mixin.rb +23 -0
  65. data/lib/gruff/themes.rb +102 -0
  66. data/lib/gruff/version.rb +3 -0
  67. data/rails_generators/gruff/gruff_generator.rb +63 -0
  68. data/rails_generators/gruff/templates/controller.rb +32 -0
  69. data/rails_generators/gruff/templates/functional_test.rb +24 -0
  70. data/test/gruff_test_case.rb +155 -0
  71. data/test/image_compare.rb +58 -0
  72. data/test/output/accum_bar.png +0 -0
  73. data/test/output/area_keynote.png +0 -0
  74. data/test/output/area_keynote_small.png +0 -0
  75. data/test/output/area_many.png +0 -0
  76. data/test/output/area_many_areas_small.png +0 -0
  77. data/test/output/area_tiny.png +0 -0
  78. data/test/output/area_wide.png +0 -0
  79. data/test/output/bar2_wrapped_legend_16_400.png +0 -0
  80. data/test/output/bar2_wrapped_legend_16_800.png +0 -0
  81. data/test/output/bar2_wrapped_legend_30_400.png +0 -0
  82. data/test/output/bar2_wrapped_legend_30_800.png +0 -0
  83. data/test/output/bar2_wrapped_legend_4_400.png +0 -0
  84. data/test/output/bar2_wrapped_legend_4_800.png +0 -0
  85. data/test/output/bar2_wrapped_legend__400.png +0 -0
  86. data/test/output/bar2_wrapped_legend__800.png +0 -0
  87. data/test/output/bar_background_gradient_bottom_top.png +0 -0
  88. data/test/output/bar_background_gradient_left_right.png +0 -0
  89. data/test/output/bar_background_gradient_right_left.png +0 -0
  90. data/test/output/bar_background_gradient_top_bottom.png +0 -0
  91. data/test/output/bar_background_gradient_topleft_bottomright.png +0 -0
  92. data/test/output/bar_background_gradient_topright_bottomleft.png +0 -0
  93. data/test/output/bar_formatted_numbers.png +0 -0
  94. data/test/output/bar_keynote.png +0 -0
  95. data/test/output/bar_keynote_small.png +0 -0
  96. data/test/output/bar_long_legend_text.png +0 -0
  97. data/test/output/bar_manual_colors.png +0 -0
  98. data/test/output/bar_marker_shadow.png +0 -0
  99. data/test/output/bar_nearly_zero_max_10.png +0 -0
  100. data/test/output/bar_no_legend.png +0 -0
  101. data/test/output/bar_no_line_markers.png +0 -0
  102. data/test/output/bar_no_title.png +0 -0
  103. data/test/output/bar_no_title_or_legend.png +0 -0
  104. data/test/output/bar_odeo.png +0 -0
  105. data/test/output/bar_one_value.png +0 -0
  106. data/test/output/bar_pos_neg.png +0 -0
  107. data/test/output/bar_rails_keynote.png +0 -0
  108. data/test/output/bar_set_absolute_trunc.png +0 -0
  109. data/test/output/bar_set_label_stagger_height.png +0 -0
  110. data/test/output/bar_set_legend_box_size_lg.png +0 -0
  111. data/test/output/bar_set_legend_box_size_sm.png +0 -0
  112. data/test/output/bar_set_marker.png +0 -0
  113. data/test/output/bar_set_trailing_dots_trunc.png +0 -0
  114. data/test/output/bar_spacing_full.png +0 -0
  115. data/test/output/bar_spacing_half.png +0 -0
  116. data/test/output/bar_spacing_none.png +0 -0
  117. data/test/output/bar_tall_graph.png +0 -0
  118. data/test/output/bar_tall_graph_small.png +0 -0
  119. data/test/output/bar_themed.png +0 -0
  120. data/test/output/bar_title_margin.png +0 -0
  121. data/test/output/bar_value_labels.png +0 -0
  122. data/test/output/bar_wide_graph.png +0 -0
  123. data/test/output/bar_wide_graph_small.png +0 -0
  124. data/test/output/bar_wrapped_legend_16_400.png +0 -0
  125. data/test/output/bar_wrapped_legend_16_800.png +0 -0
  126. data/test/output/bar_wrapped_legend_30_400.png +0 -0
  127. data/test/output/bar_wrapped_legend_30_800.png +0 -0
  128. data/test/output/bar_wrapped_legend_4_400.png +0 -0
  129. data/test/output/bar_wrapped_legend_4_800.png +0 -0
  130. data/test/output/bar_wrapped_legend__400.png +0 -0
  131. data/test/output/bar_wrapped_legend__800.png +0 -0
  132. data/test/output/bar_x_y_labels.png +0 -0
  133. data/test/output/bar_y_increment_1.png +0 -0
  134. data/test/output/bar_y_increment_2.0.png +0 -0
  135. data/test/output/bar_y_increment_20.png +0 -0
  136. data/test/output/bar_y_increment_5.png +0 -0
  137. data/test/output/bar_zero_marker_count.png +0 -0
  138. data/test/output/bar_zero_spacing.png +0 -0
  139. data/test/output/bezier.png +0 -0
  140. data/test/output/bezier_2.png +0 -0
  141. data/test/output/bezier_3.png +0 -0
  142. data/test/output/bullet_greyscale.png +0 -0
  143. data/test/output/bullet_no_options.png +0 -0
  144. data/test/output/dot.png +0 -0
  145. data/test/output/dot_manual_colors.png +0 -0
  146. data/test/output/dot_nearly_zero_max_10.png +0 -0
  147. data/test/output/dot_no_legend.png +0 -0
  148. data/test/output/dot_no_line_markers.png +0 -0
  149. data/test/output/dot_no_title.png +0 -0
  150. data/test/output/dot_no_title_or_legend.png +0 -0
  151. data/test/output/dot_one_value.png +0 -0
  152. data/test/output/dot_pos_neg.png +0 -0
  153. data/test/output/dot_set_legend_box_size_lg.png +0 -0
  154. data/test/output/dot_set_legend_box_size_sm.png +0 -0
  155. data/test/output/dot_set_marker.png +0 -0
  156. data/test/output/dot_small.png +0 -0
  157. data/test/output/dot_tall_graph.png +0 -0
  158. data/test/output/dot_tall_graph_small.png +0 -0
  159. data/test/output/dot_themed.png +0 -0
  160. data/test/output/dot_wide_graph.png +0 -0
  161. data/test/output/dot_wide_graph_small.png +0 -0
  162. data/test/output/dot_x_y_labels.png +0 -0
  163. data/test/output/dot_y_increment_1.png +0 -0
  164. data/test/output/dot_y_increment_2.0.png +0 -0
  165. data/test/output/dot_y_increment_20.png +0 -0
  166. data/test/output/dot_y_increment_5.png +0 -0
  167. data/test/output/enhancements-1.png +0 -0
  168. data/test/output/enhancements.png +0 -0
  169. data/test/output/line_all_neg.png +0 -0
  170. data/test/output/line_all_neg_400.png +0 -0
  171. data/test/output/line_all_neg_no_max.png +0 -0
  172. data/test/output/line_baseline.png +0 -0
  173. data/test/output/line_hang_value.png +0 -0
  174. data/test/output/line_hide_dots.png +0 -0
  175. data/test/output/line_hide_lines.png +0 -0
  176. data/test/output/line_jruby_error.png +0 -0
  177. data/test/output/line_large.png +0 -0
  178. data/test/output/line_large_baseline.png +0 -0
  179. data/test/output/line_legend_at_bottom.png +0 -0
  180. data/test/output/line_many.png +0 -0
  181. data/test/output/line_many_lines_small.png +0 -0
  182. data/test/output/line_many_numbers.png +0 -0
  183. data/test/output/line_marker_label_accuracy.png +0 -0
  184. data/test/output/line_more_sets_than_colors.png +0 -0
  185. data/test/output/line_no_data.png +0 -0
  186. data/test/output/line_no_data_msg.png +0 -0
  187. data/test/output/line_no_data_other.png +0 -0
  188. data/test/output/line_no_hide.png +0 -0
  189. data/test/output/line_no_legend.png +0 -0
  190. data/test/output/line_no_line_markers.png +0 -0
  191. data/test/output/line_no_title.png +0 -0
  192. data/test/output/line_nothing_but_the_graph.png +0 -0
  193. data/test/output/line_one_value.png +0 -0
  194. data/test/output/line_one_value_array.png +0 -0
  195. data/test/output/line_pos_neg.png +0 -0
  196. data/test/output/line_pos_neg_400.png +0 -0
  197. data/test/output/line_similar_high_end_values.png +0 -0
  198. data/test/output/line_similar_high_end_values_with_floor.png +0 -0
  199. data/test/output/line_small_small_zero.png +0 -0
  200. data/test/output/line_small_values.png +0 -0
  201. data/test/output/line_small_values_small.png +0 -0
  202. data/test/output/line_small_zero.png +0 -0
  203. data/test/output/line_some_nil_points.png +0 -0
  204. data/test/output/line_theme_37signals_.png +0 -0
  205. data/test/output/line_theme_37signals_400.png +0 -0
  206. data/test/output/line_theme_keynote_.png +0 -0
  207. data/test/output/line_theme_keynote_400.png +0 -0
  208. data/test/output/line_theme_odeo_.png +0 -0
  209. data/test/output/line_theme_odeo_400.png +0 -0
  210. data/test/output/line_theme_rails_keynote_.png +0 -0
  211. data/test/output/line_theme_rails_keynote_400.png +0 -0
  212. data/test/output/line_tiny.png +0 -0
  213. data/test/output/line_transparent.png +0 -0
  214. data/test/output/line_very_small.png +0 -0
  215. data/test/output/line_wide_graph.png +0 -0
  216. data/test/output/line_wide_graph_small.png +0 -0
  217. data/test/output/line_xy.png +0 -0
  218. data/test/output/line_xy_pairs.png +0 -0
  219. data/test/output/line_y_axis_increment.png +0 -0
  220. data/test/output/mini_bar.png +0 -0
  221. data/test/output/mini_pie.png +0 -0
  222. data/test/output/mini_pie_right_legend.png +0 -0
  223. data/test/output/mini_side_bar.png +0 -0
  224. data/test/output/mini_side_bar_multi_color.png +0 -0
  225. data/test/output/net_dots_tiny.png +0 -0
  226. data/test/output/net_large.png +0 -0
  227. data/test/output/net_many.png +0 -0
  228. data/test/output/net_many_nets_small.png +0 -0
  229. data/test/output/net_no_data.png +0 -0
  230. data/test/output/net_no_data_msg.png +0 -0
  231. data/test/output/net_no_data_other.png +0 -0
  232. data/test/output/net_no_legend.png +0 -0
  233. data/test/output/net_no_net_markers.png +0 -0
  234. data/test/output/net_no_title.png +0 -0
  235. data/test/output/net_nothing_but_the_graph.png +0 -0
  236. data/test/output/net_similar_high_end_values.png +0 -0
  237. data/test/output/net_small.png +0 -0
  238. data/test/output/net_small_small.png +0 -0
  239. data/test/output/net_small_small_zero.png +0 -0
  240. data/test/output/net_small_zero.png +0 -0
  241. data/test/output/net_wide_graph.png +0 -0
  242. data/test/output/net_wide_graph_small.png +0 -0
  243. data/test/output/pie_equal.png +0 -0
  244. data/test/output/pie_grey.png +0 -0
  245. data/test/output/pie_keynote.png +0 -0
  246. data/test/output/pie_keynote_small.png +0 -0
  247. data/test/output/pie_legend.png +0 -0
  248. data/test/output/pie_legend_small.png +0 -0
  249. data/test/output/pie_nearly_equal.png +0 -0
  250. data/test/output/pie_one_val.png +0 -0
  251. data/test/output/pie_pastel.png +0 -0
  252. data/test/output/pie_simple.png +0 -0
  253. data/test/output/pie_wide.png +0 -0
  254. data/test/output/pie_wrapped_legend_16_400.png +0 -0
  255. data/test/output/pie_wrapped_legend_16_800.png +0 -0
  256. data/test/output/pie_wrapped_legend_30_400.png +0 -0
  257. data/test/output/pie_wrapped_legend_30_800.png +0 -0
  258. data/test/output/pie_wrapped_legend_4_400.png +0 -0
  259. data/test/output/pie_wrapped_legend_4_800.png +0 -0
  260. data/test/output/pie_wrapped_legend__400.png +0 -0
  261. data/test/output/pie_wrapped_legend__800.png +0 -0
  262. data/test/output/pie_zero.png +0 -0
  263. data/test/output/scatter_all_neg.png +0 -0
  264. data/test/output/scatter_all_neg_400.png +0 -0
  265. data/test/output/scatter_basic.png +0 -0
  266. data/test/output/scatter_many.png +0 -0
  267. data/test/output/scatter_no_data.png +0 -0
  268. data/test/output/scatter_no_data_msg.png +0 -0
  269. data/test/output/scatter_no_data_other.png +0 -0
  270. data/test/output/scatter_no_hide.png +0 -0
  271. data/test/output/scatter_no_labels.png +0 -0
  272. data/test/output/scatter_no_legend.png +0 -0
  273. data/test/output/scatter_no_line_markers.png +0 -0
  274. data/test/output/scatter_no_title.png +0 -0
  275. data/test/output/scatter_nothing_but_the_graph.png +0 -0
  276. data/test/output/scatter_pos_neg.png +0 -0
  277. data/test/output/scatter_pos_neg_400.png +0 -0
  278. data/test/output/scatter_wide_graph.png +0 -0
  279. data/test/output/scatter_wide_graph_small.png +0 -0
  280. data/test/output/scene_hazy_night.png +0 -0
  281. data/test/output/scene_not_hazy_day.png +0 -0
  282. data/test/output/scene_partly_cloudy_day.png +0 -0
  283. data/test/output/scene_stormy_day.png +0 -0
  284. data/test/output/scene_stormy_night.png +0 -0
  285. data/test/output/side_bar.png +0 -0
  286. data/test/output/side_bar_data_range.png +0 -0
  287. data/test/output/side_bar_labels.png +0 -0
  288. data/test/output/side_bar_spacing_full.png +0 -0
  289. data/test/output/side_bar_spacing_half.png +0 -0
  290. data/test/output/side_bar_spacing_none.png +0 -0
  291. data/test/output/side_stacked_bar_keynote.png +0 -0
  292. data/test/output/side_stacked_bar_keynote_small.png +0 -0
  293. data/test/output/side_stacked_bar_labels.png +0 -0
  294. data/test/output/side_stacked_bar_long_label.png +0 -0
  295. data/test/output/side_stacked_bar_wide.png +0 -0
  296. data/test/output/spider_37signals.png +0 -0
  297. data/test/output/spider_equal.png +0 -0
  298. data/test/output/spider_keynote.png +0 -0
  299. data/test/output/spider_legend.png +0 -0
  300. data/test/output/spider_legend_small.png +0 -0
  301. data/test/output/spider_lots_of_data.png +0 -0
  302. data/test/output/spider_lots_of_data_normal_names.png +0 -0
  303. data/test/output/spider_nearly_equal.png +0 -0
  304. data/test/output/spider_no_axes.png +0 -0
  305. data/test/output/spider_no_background.png +0 -0
  306. data/test/output/spider_no_print.png +0 -0
  307. data/test/output/spider_overlay_1.png +0 -0
  308. data/test/output/spider_overlay_2.png +0 -0
  309. data/test/output/spider_rotation.png +0 -0
  310. data/test/output/spider_small.png +0 -0
  311. data/test/output/spider_wide.png +0 -0
  312. data/test/output/spider_zero.png +0 -0
  313. data/test/output/stacked_area_keynote.png +0 -0
  314. data/test/output/stacked_area_keynote_small.png +0 -0
  315. data/test/output/stacked_bar_keynote.png +0 -0
  316. data/test/output/stacked_bar_keynote_small.png +0 -0
  317. data/test/output_java/accum_bar.png +0 -0
  318. data/test/output_java/area_keynote.png +0 -0
  319. data/test/output_java/area_keynote_small.png +0 -0
  320. data/test/output_java/area_many.png +0 -0
  321. data/test/output_java/area_many_areas_small.png +0 -0
  322. data/test/output_java/area_tiny.png +0 -0
  323. data/test/output_java/area_wide.png +0 -0
  324. data/test/output_java/bar2_wrapped_legend_16_400.png +0 -0
  325. data/test/output_java/bar2_wrapped_legend_16_800.png +0 -0
  326. data/test/output_java/bar2_wrapped_legend_30_400.png +0 -0
  327. data/test/output_java/bar2_wrapped_legend_30_800.png +0 -0
  328. data/test/output_java/bar2_wrapped_legend_4_400.png +0 -0
  329. data/test/output_java/bar2_wrapped_legend_4_800.png +0 -0
  330. data/test/output_java/bar2_wrapped_legend__400.png +0 -0
  331. data/test/output_java/bar2_wrapped_legend__800.png +0 -0
  332. data/test/output_java/bar_background_gradient_bottom_top.png +0 -0
  333. data/test/output_java/bar_background_gradient_left_right.png +0 -0
  334. data/test/output_java/bar_background_gradient_right_left.png +0 -0
  335. data/test/output_java/bar_background_gradient_top_bottom.png +0 -0
  336. data/test/output_java/bar_background_gradient_topleft_bottomright.png +0 -0
  337. data/test/output_java/bar_background_gradient_topright_bottomleft.png +0 -0
  338. data/test/output_java/bar_formatted_numbers.png +0 -0
  339. data/test/output_java/bar_keynote.png +0 -0
  340. data/test/output_java/bar_keynote_small.png +0 -0
  341. data/test/output_java/bar_long_legend_text.png +0 -0
  342. data/test/output_java/bar_manual_colors.png +0 -0
  343. data/test/output_java/bar_marker_shadow.png +0 -0
  344. data/test/output_java/bar_nearly_zero_max_10.png +0 -0
  345. data/test/output_java/bar_no_legend.png +0 -0
  346. data/test/output_java/bar_no_line_markers.png +0 -0
  347. data/test/output_java/bar_no_title.png +0 -0
  348. data/test/output_java/bar_no_title_or_legend.png +0 -0
  349. data/test/output_java/bar_odeo.png +0 -0
  350. data/test/output_java/bar_one_value.png +0 -0
  351. data/test/output_java/bar_pos_neg.png +0 -0
  352. data/test/output_java/bar_rails_keynote.png +0 -0
  353. data/test/output_java/bar_set_absolute_trunc.png +0 -0
  354. data/test/output_java/bar_set_label_stagger_height.png +0 -0
  355. data/test/output_java/bar_set_legend_box_size_lg.png +0 -0
  356. data/test/output_java/bar_set_legend_box_size_sm.png +0 -0
  357. data/test/output_java/bar_set_marker.png +0 -0
  358. data/test/output_java/bar_set_trailing_dots_trunc.png +0 -0
  359. data/test/output_java/bar_spacing_full.png +0 -0
  360. data/test/output_java/bar_spacing_half.png +0 -0
  361. data/test/output_java/bar_spacing_none.png +0 -0
  362. data/test/output_java/bar_tall_graph.png +0 -0
  363. data/test/output_java/bar_tall_graph_small.png +0 -0
  364. data/test/output_java/bar_themed.png +0 -0
  365. data/test/output_java/bar_title_margin.png +0 -0
  366. data/test/output_java/bar_value_labels.png +0 -0
  367. data/test/output_java/bar_wide_graph.png +0 -0
  368. data/test/output_java/bar_wide_graph_small.png +0 -0
  369. data/test/output_java/bar_wrapped_legend_16_400.png +0 -0
  370. data/test/output_java/bar_wrapped_legend_16_800.png +0 -0
  371. data/test/output_java/bar_wrapped_legend_30_400.png +0 -0
  372. data/test/output_java/bar_wrapped_legend_30_800.png +0 -0
  373. data/test/output_java/bar_wrapped_legend_4_400.png +0 -0
  374. data/test/output_java/bar_wrapped_legend_4_800.png +0 -0
  375. data/test/output_java/bar_wrapped_legend__400.png +0 -0
  376. data/test/output_java/bar_wrapped_legend__800.png +0 -0
  377. data/test/output_java/bar_x_y_labels.png +0 -0
  378. data/test/output_java/bar_y_increment_1.png +0 -0
  379. data/test/output_java/bar_y_increment_2.0.png +0 -0
  380. data/test/output_java/bar_y_increment_20.png +0 -0
  381. data/test/output_java/bar_y_increment_5.png +0 -0
  382. data/test/output_java/bar_zero_marker_count.png +0 -0
  383. data/test/output_java/bar_zero_spacing.png +0 -0
  384. data/test/output_java/bezier.png +0 -0
  385. data/test/output_java/bezier_2.png +0 -0
  386. data/test/output_java/bezier_3.png +0 -0
  387. data/test/output_java/bullet_greyscale.png +0 -0
  388. data/test/output_java/bullet_no_options.png +0 -0
  389. data/test/output_java/dot.png +0 -0
  390. data/test/output_java/dot_manual_colors.png +0 -0
  391. data/test/output_java/dot_nearly_zero_max_10.png +0 -0
  392. data/test/output_java/dot_no_legend.png +0 -0
  393. data/test/output_java/dot_no_line_markers.png +0 -0
  394. data/test/output_java/dot_no_title.png +0 -0
  395. data/test/output_java/dot_no_title_or_legend.png +0 -0
  396. data/test/output_java/dot_one_value.png +0 -0
  397. data/test/output_java/dot_pos_neg.png +0 -0
  398. data/test/output_java/dot_set_legend_box_size_lg.png +0 -0
  399. data/test/output_java/dot_set_legend_box_size_sm.png +0 -0
  400. data/test/output_java/dot_set_marker.png +0 -0
  401. data/test/output_java/dot_small.png +0 -0
  402. data/test/output_java/dot_tall_graph.png +0 -0
  403. data/test/output_java/dot_tall_graph_small.png +0 -0
  404. data/test/output_java/dot_themed.png +0 -0
  405. data/test/output_java/dot_wide_graph.png +0 -0
  406. data/test/output_java/dot_wide_graph_small.png +0 -0
  407. data/test/output_java/dot_x_y_labels.png +0 -0
  408. data/test/output_java/dot_y_increment_1.png +0 -0
  409. data/test/output_java/dot_y_increment_2.0.png +0 -0
  410. data/test/output_java/dot_y_increment_20.png +0 -0
  411. data/test/output_java/dot_y_increment_5.png +0 -0
  412. data/test/output_java/enhancements-1.png +0 -0
  413. data/test/output_java/enhancements.png +0 -0
  414. data/test/output_java/line_all_neg.png +0 -0
  415. data/test/output_java/line_all_neg_400.png +0 -0
  416. data/test/output_java/line_all_neg_no_max.png +0 -0
  417. data/test/output_java/line_baseline.png +0 -0
  418. data/test/output_java/line_hang_value.png +0 -0
  419. data/test/output_java/line_hide_dots.png +0 -0
  420. data/test/output_java/line_hide_lines.png +0 -0
  421. data/test/output_java/line_jruby_error.png +0 -0
  422. data/test/output_java/line_large.png +0 -0
  423. data/test/output_java/line_large_baseline.png +0 -0
  424. data/test/output_java/line_legend_at_bottom.png +0 -0
  425. data/test/output_java/line_many.png +0 -0
  426. data/test/output_java/line_many_lines_small.png +0 -0
  427. data/test/output_java/line_many_numbers.png +0 -0
  428. data/test/output_java/line_marker_label_accuracy.png +0 -0
  429. data/test/output_java/line_more_sets_than_colors.png +0 -0
  430. data/test/output_java/line_no_data.png +0 -0
  431. data/test/output_java/line_no_data_msg.png +0 -0
  432. data/test/output_java/line_no_data_other.png +0 -0
  433. data/test/output_java/line_no_hide.png +0 -0
  434. data/test/output_java/line_no_legend.png +0 -0
  435. data/test/output_java/line_no_line_markers.png +0 -0
  436. data/test/output_java/line_no_title.png +0 -0
  437. data/test/output_java/line_nothing_but_the_graph.png +0 -0
  438. data/test/output_java/line_one_value.png +0 -0
  439. data/test/output_java/line_one_value_array.png +0 -0
  440. data/test/output_java/line_pos_neg.png +0 -0
  441. data/test/output_java/line_pos_neg_400.png +0 -0
  442. data/test/output_java/line_similar_high_end_values.png +0 -0
  443. data/test/output_java/line_similar_high_end_values_with_floor.png +0 -0
  444. data/test/output_java/line_small_small_zero.png +0 -0
  445. data/test/output_java/line_small_values.png +0 -0
  446. data/test/output_java/line_small_values_small.png +0 -0
  447. data/test/output_java/line_small_zero.png +0 -0
  448. data/test/output_java/line_some_nil_points.png +0 -0
  449. data/test/output_java/line_theme_37signals_.png +0 -0
  450. data/test/output_java/line_theme_37signals_400.png +0 -0
  451. data/test/output_java/line_theme_keynote_.png +0 -0
  452. data/test/output_java/line_theme_keynote_400.png +0 -0
  453. data/test/output_java/line_theme_odeo_.png +0 -0
  454. data/test/output_java/line_theme_odeo_400.png +0 -0
  455. data/test/output_java/line_theme_rails_keynote_.png +0 -0
  456. data/test/output_java/line_theme_rails_keynote_400.png +0 -0
  457. data/test/output_java/line_tiny.png +0 -0
  458. data/test/output_java/line_transparent.png +0 -0
  459. data/test/output_java/line_very_small.png +0 -0
  460. data/test/output_java/line_wide_graph.png +0 -0
  461. data/test/output_java/line_wide_graph_small.png +0 -0
  462. data/test/output_java/line_xy.png +0 -0
  463. data/test/output_java/line_xy_pairs.png +0 -0
  464. data/test/output_java/line_y_axis_increment.png +0 -0
  465. data/test/output_java/mini_bar.png +0 -0
  466. data/test/output_java/mini_pie.png +0 -0
  467. data/test/output_java/mini_pie_right_legend.png +0 -0
  468. data/test/output_java/mini_side_bar.png +0 -0
  469. data/test/output_java/mini_side_bar_multi_color.png +0 -0
  470. data/test/output_java/net_dots_tiny.png +0 -0
  471. data/test/output_java/net_large.png +0 -0
  472. data/test/output_java/net_many.png +0 -0
  473. data/test/output_java/net_many_nets_small.png +0 -0
  474. data/test/output_java/net_no_data.png +0 -0
  475. data/test/output_java/net_no_data_msg.png +0 -0
  476. data/test/output_java/net_no_data_other.png +0 -0
  477. data/test/output_java/net_no_legend.png +0 -0
  478. data/test/output_java/net_no_net_markers.png +0 -0
  479. data/test/output_java/net_no_title.png +0 -0
  480. data/test/output_java/net_nothing_but_the_graph.png +0 -0
  481. data/test/output_java/net_similar_high_end_values.png +0 -0
  482. data/test/output_java/net_small.png +0 -0
  483. data/test/output_java/net_small_small.png +0 -0
  484. data/test/output_java/net_small_small_zero.png +0 -0
  485. data/test/output_java/net_small_zero.png +0 -0
  486. data/test/output_java/net_wide_graph.png +0 -0
  487. data/test/output_java/net_wide_graph_small.png +0 -0
  488. data/test/output_java/pie_equal.png +0 -0
  489. data/test/output_java/pie_grey.png +0 -0
  490. data/test/output_java/pie_keynote.png +0 -0
  491. data/test/output_java/pie_keynote_small.png +0 -0
  492. data/test/output_java/pie_legend.png +0 -0
  493. data/test/output_java/pie_legend_small.png +0 -0
  494. data/test/output_java/pie_nearly_equal.png +0 -0
  495. data/test/output_java/pie_one_val.png +0 -0
  496. data/test/output_java/pie_pastel.png +0 -0
  497. data/test/output_java/pie_simple.png +0 -0
  498. data/test/output_java/pie_wide.png +0 -0
  499. data/test/output_java/pie_wrapped_legend_16_400.png +0 -0
  500. data/test/output_java/pie_wrapped_legend_16_800.png +0 -0
  501. data/test/output_java/pie_wrapped_legend_30_400.png +0 -0
  502. data/test/output_java/pie_wrapped_legend_30_800.png +0 -0
  503. data/test/output_java/pie_wrapped_legend_4_400.png +0 -0
  504. data/test/output_java/pie_wrapped_legend_4_800.png +0 -0
  505. data/test/output_java/pie_wrapped_legend__400.png +0 -0
  506. data/test/output_java/pie_wrapped_legend__800.png +0 -0
  507. data/test/output_java/pie_zero.png +0 -0
  508. data/test/output_java/scatter_all_neg.png +0 -0
  509. data/test/output_java/scatter_all_neg_400.png +0 -0
  510. data/test/output_java/scatter_basic.png +0 -0
  511. data/test/output_java/scatter_many.png +0 -0
  512. data/test/output_java/scatter_no_data.png +0 -0
  513. data/test/output_java/scatter_no_data_msg.png +0 -0
  514. data/test/output_java/scatter_no_data_other.png +0 -0
  515. data/test/output_java/scatter_no_hide.png +0 -0
  516. data/test/output_java/scatter_no_labels.png +0 -0
  517. data/test/output_java/scatter_no_legend.png +0 -0
  518. data/test/output_java/scatter_no_line_markers.png +0 -0
  519. data/test/output_java/scatter_no_title.png +0 -0
  520. data/test/output_java/scatter_nothing_but_the_graph.png +0 -0
  521. data/test/output_java/scatter_pos_neg.png +0 -0
  522. data/test/output_java/scatter_pos_neg_400.png +0 -0
  523. data/test/output_java/scatter_wide_graph.png +0 -0
  524. data/test/output_java/scatter_wide_graph_small.png +0 -0
  525. data/test/output_java/scene_hazy_night.png +0 -0
  526. data/test/output_java/scene_not_hazy_day.png +0 -0
  527. data/test/output_java/scene_partly_cloudy_day.png +0 -0
  528. data/test/output_java/scene_stormy_day.png +0 -0
  529. data/test/output_java/scene_stormy_night.png +0 -0
  530. data/test/output_java/side_bar.png +0 -0
  531. data/test/output_java/side_bar_data_range.png +0 -0
  532. data/test/output_java/side_bar_labels.png +0 -0
  533. data/test/output_java/side_bar_spacing_full.png +0 -0
  534. data/test/output_java/side_bar_spacing_half.png +0 -0
  535. data/test/output_java/side_bar_spacing_none.png +0 -0
  536. data/test/output_java/side_stacked_bar_keynote.png +0 -0
  537. data/test/output_java/side_stacked_bar_keynote_small.png +0 -0
  538. data/test/output_java/side_stacked_bar_labels.png +0 -0
  539. data/test/output_java/side_stacked_bar_long_label.png +0 -0
  540. data/test/output_java/side_stacked_bar_wide.png +0 -0
  541. data/test/output_java/spider_37signals.png +0 -0
  542. data/test/output_java/spider_equal.png +0 -0
  543. data/test/output_java/spider_keynote.png +0 -0
  544. data/test/output_java/spider_legend.png +0 -0
  545. data/test/output_java/spider_legend_small.png +0 -0
  546. data/test/output_java/spider_lots_of_data.png +0 -0
  547. data/test/output_java/spider_lots_of_data_normal_names.png +0 -0
  548. data/test/output_java/spider_nearly_equal.png +0 -0
  549. data/test/output_java/spider_no_axes.png +0 -0
  550. data/test/output_java/spider_no_background.png +0 -0
  551. data/test/output_java/spider_no_print.png +0 -0
  552. data/test/output_java/spider_overlay_1.png +0 -0
  553. data/test/output_java/spider_overlay_2.png +0 -0
  554. data/test/output_java/spider_rotation.png +0 -0
  555. data/test/output_java/spider_small.png +0 -0
  556. data/test/output_java/spider_wide.png +0 -0
  557. data/test/output_java/spider_zero.png +0 -0
  558. data/test/output_java/stacked_area_keynote.png +0 -0
  559. data/test/output_java/stacked_area_keynote_small.png +0 -0
  560. data/test/output_java/stacked_bar_keynote.png +0 -0
  561. data/test/output_java/stacked_bar_keynote_small.png +0 -0
  562. data/test/test_accumulator_bar.rb +51 -0
  563. data/test/test_area.rb +134 -0
  564. data/test/test_bar.rb +505 -0
  565. data/test/test_base.rb +8 -0
  566. data/test/test_bezier.rb +33 -0
  567. data/test/test_bullet.rb +26 -0
  568. data/test/test_dot.rb +263 -0
  569. data/test/test_legend.rb +68 -0
  570. data/test/test_line.rb +626 -0
  571. data/test/test_mini_bar.rb +33 -0
  572. data/test/test_mini_pie.rb +25 -0
  573. data/test/test_mini_side_bar.rb +36 -0
  574. data/test/test_net.rb +231 -0
  575. data/test/test_photo.rb +41 -0
  576. data/test/test_pie.rb +154 -0
  577. data/test/test_scatter.rb +233 -0
  578. data/test/test_scene.rb +100 -0
  579. data/test/test_side_bar.rb +56 -0
  580. data/test/test_sidestacked_bar.rb +105 -0
  581. data/test/test_spider.rb +226 -0
  582. data/test/test_stacked_area.rb +52 -0
  583. data/test/test_stacked_bar.rb +52 -0
  584. metadata +1176 -0
@@ -0,0 +1,7 @@
1
+ *~
2
+ /.idea/
3
+ /pkg/
4
+ .DS_Store
5
+ .bundle
6
+ .yardoc
7
+ Gemfile.lock
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ notifications:
3
+ email:
4
+ - uwe@kubosch.no
5
+ rvm:
6
+ - "1.8.7"
7
+ - "1.9.3"
8
+ - "2.0.0"
9
+ - jruby-18mode # JRuby in 1.8 mode
10
+ - jruby-19mode # JRuby in 1.9 mode
11
+ - jruby-20mode # JRuby in 2.0 mode
12
+ - rbx-18mode
13
+ - rbx-19mode
14
+ - rbx-20mode
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in gruff.gemspec
4
+ gemspec
5
+
6
+ group :test do
7
+ if RUBY_VERSION =~ /^1\.9\./ || RUBY_VERSION =~ /^2\.0\./
8
+ gem 'minitest-reporters'
9
+ end
10
+ end
@@ -0,0 +1,193 @@
1
+ == 0.4.0
2
+
3
+ All old branches and pull requests have been merged or deleted. Over 40
4
+ issues have been resolved! Ruby 2.0 compatibility has been confirmed.
5
+ Several new features.
6
+
7
+ Features:
8
+
9
+ * Issue #38 Separate themes into Gruff::Themes module
10
+ * Issue #39 Add staggered labels
11
+ * Issue #40 Added spacing factor to bar graphs
12
+ * Issue #41 Add rotation to spider chart
13
+ * Issue #65 Add RMagick and RMagick4J respectively as dependencies to the
14
+ Gruff gem
15
+ * Issue #81 Ensure Ruby 2.0 compatibility
16
+
17
+ Bugfixes:
18
+
19
+ * Issue #17 Baseline drawn at incorrect position
20
+ * Issue #21 Division By Zero Error on Documented Example
21
+ * Issue #36 When writing the same chart multiple times, it should not be
22
+ rendered again.
23
+ * Issue #44 XY Datasets are inconvenient to use. (documentation and/or
24
+ code is wrong)
25
+ * Issue #46 issue with markers that are floats
26
+ * Issue #51 line with nil in dataset
27
+ * Issue #52 Wrong direction in y_axis_label
28
+ * Issue #54 Explicitly specify overlapping for lines (Gruff::Line)
29
+ * Issue #58 Clean up data sorting
30
+ * Issue #59 Escape '%' in labels
31
+ * Issue #60 Correct DOT graph drawing
32
+ * Issue #63 Some charts are drawn with transparent text when running with
33
+ JRuby/RMagick4J
34
+ * Issue #66 Marker line for 54.0 is missing on bar_set_marker.png example
35
+ * Issue #68 Y-axis label for bar_x_y_labels.png should be rotated when
36
+ drawn with JRuby
37
+
38
+ Support:
39
+
40
+ * Issue #4 Scaling a graph leads to fuzzy pictures
41
+ * Issue #8 zero-width bar entries drawn
42
+ * Issue #11 Feature: Data value markers
43
+ * Issue #18 Set encoding to uft-8
44
+ * Issue #24 Gruff::SideStackedBar
45
+ * Issue #35 Add option for line height in legend.
46
+ * Issue #49 font directive is not setting font in charts
47
+ * Issue #53 Is this project still alive?
48
+
49
+ Documentation:
50
+
51
+ * Issue #57 Build failing on Travis and no Build Status image in Readme
52
+
53
+ Pull requests:
54
+
55
+ * Issue #9 Add gradient background direction
56
+ * Issue #12 Bar updates
57
+ * Issue #14 Make use of the TEXT_OFFSET_PERCENTAGE const variable
58
+ * Issue #16 Fix exception when y_axis_increment is used in line bars
59
+ * Issue #26 Fix bug with additional point included on area charts
60
+ * Issue #27 Added marker_shadow_color to allow to draw shadows below
61
+ marker lines
62
+ * Issue #37 Update lib/gruff/base.rb: set legend under the graph
63
+ * Issue #42 Update lib/gruff/base.rb: set legend under the graph
64
+ * Issue #43 Fixed issue #25
65
+ * Issue #48 add license information to the gemspec
66
+ * Issue #56 Fixed gem file generation problem
67
+
68
+ Internal:
69
+
70
+ * Issue #80 Remove the .rmvrc file from the project
71
+
72
+
73
+ == 0.3.7
74
+
75
+ * ???
76
+
77
+ == 0.3.6
78
+
79
+ * Fixed manifest to list dot graph [theirishpenguin]
80
+ * Fixed color cycling error [Gunnar Wolf]
81
+ * Handle case where a line graph data set only has one value [Ron Colwill]
82
+
83
+ == 0.3.5
84
+
85
+ * Added dot graph from Erik Andrejko
86
+
87
+ == 0.3.4
88
+
89
+ * Reverted DEBUG=true. Will add a check in the release process so this doesn't happen again.
90
+ * Future releases will end in an odd number for development (topfunky-gruff on GitHub) or even for production releases.
91
+
92
+ == 0.3.3
93
+
94
+ * Legend line wrapping [Mat Schaffer]
95
+ * Stacked area graph fixes [James Coglan]
96
+
97
+ == 0.3.2
98
+
99
+ * Include init.rb for use as a Rails plugin.
100
+
101
+ == 0.3.1
102
+
103
+ * Fixed missing bullet graph bug (experimental, will be in a future release).
104
+
105
+ == 0.3.0
106
+
107
+ * Fixed bug where pie graphs weren't drawing their label correctly.
108
+
109
+ == 0.2.9
110
+
111
+ * Patch to make SideBar accurate instead of stacked [Marik]
112
+ * Will be extracting net, pie, stacked, and side-stacked to separate gem
113
+ in next release.
114
+
115
+ == 0.2.8
116
+
117
+ * New accumulator bar graph (experimental)
118
+ * Better mini graphs
119
+ * Bug fixes
120
+
121
+ == 0.2.7
122
+
123
+ * Regenerated Manifest.txt
124
+ * Added scene sample to package
125
+ * Added mini side_bar (EXPERIMENTAL)
126
+ * Added @zero_degree option to Gruff::Pie so first slice can start somewhere other than 3 o'clock
127
+ * Increased size of numbers in Gruff::Mini::Pie
128
+ * Added legend_box_size accessor
129
+
130
+ == 0.2.6
131
+
132
+ * Fixed missing side_bar.rb in Manifest.txt
133
+
134
+ == 0.2.5
135
+
136
+ * New mini graph types (Experimental)
137
+ * Marker lines can be different color than text labels
138
+ * Theme definition cleanup
139
+
140
+ == 0.2.4
141
+
142
+ * Added option to hide line numbers
143
+ * Fixed code that was causing warnings
144
+
145
+ == 0.2.3
146
+
147
+ * Cleaned up measurements so the graph expands to fill the available space
148
+ * Added x-axis and y-axis label options
149
+
150
+ == 0.1.2
151
+
152
+ * minimum_value and maximum_value can be set after data() to manually scale the graph
153
+ * Fixed infinite loop bug when values are all equal
154
+ * Added experimental net and spider graphs
155
+ * Added non-linear scene graph for a simple interface to complex layered graphs
156
+ * Initial refactoring of tests
157
+ * A host of other bug fixes
158
+
159
+ == 0.0.8
160
+
161
+ * NEW Sidestacked Bar Graphs. [Alun Eyre]
162
+ * baseline_value larger than data will now show correctly. [Mike Perham]
163
+ * hide_dots and hide_lines are now options for line graphs.
164
+
165
+ == 0.0.6
166
+
167
+ * Fixed hang when no data is passed.
168
+
169
+ == 0.0.4
170
+
171
+ * Added bar graphs
172
+ * Added area graphs
173
+ * Added pie graphs
174
+ * Added render_image_background for using images as background on a theme
175
+ * Fixed small size legend centering issue
176
+ * Added initial line marker rounding to significant digits (Christian Winkler)
177
+ * Line graphs line width is scaled with number of points being drawn (Christian Winkler)
178
+
179
+ == 0.0.3
180
+
181
+ * Added option to draw line graphs without the lines (points only), thanks to Eric Hodel
182
+ * Removed font-minimum check so graphs look better at 300px width
183
+
184
+ == 0.0.2
185
+
186
+ * Fixed to_blob (thanks to Carlos Villela)
187
+ * Added bar graphs (initial functionality...will be enhanced)
188
+ * Removed rendered test output from gem
189
+
190
+ == 0.0.1
191
+
192
+ * Initial release.
193
+ * Line graphs only. Other graph styles coming soon.
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2005-2012 Topfunky Corporation boss@topfunky.com
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,81 @@
1
+ History.txt
2
+ MIT-LICENSE
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ assets/bubble.png
7
+ assets/city_scene/background/0000.png
8
+ assets/city_scene/background/0600.png
9
+ assets/city_scene/background/2000.png
10
+ assets/city_scene/clouds/cloudy.png
11
+ assets/city_scene/clouds/partly_cloudy.png
12
+ assets/city_scene/clouds/stormy.png
13
+ assets/city_scene/grass/default.png
14
+ assets/city_scene/haze/true.png
15
+ assets/city_scene/number_sample/1.png
16
+ assets/city_scene/number_sample/2.png
17
+ assets/city_scene/number_sample/default.png
18
+ assets/city_scene/sky/0000.png
19
+ assets/city_scene/sky/0200.png
20
+ assets/city_scene/sky/0400.png
21
+ assets/city_scene/sky/0600.png
22
+ assets/city_scene/sky/0800.png
23
+ assets/city_scene/sky/1000.png
24
+ assets/city_scene/sky/1200.png
25
+ assets/city_scene/sky/1400.png
26
+ assets/city_scene/sky/1500.png
27
+ assets/city_scene/sky/1700.png
28
+ assets/city_scene/sky/2000.png
29
+ assets/pc306715.jpg
30
+ assets/plastik/blue.png
31
+ assets/plastik/green.png
32
+ assets/plastik/red.png
33
+ init.rb
34
+ lib/gruff.rb
35
+ lib/gruff/accumulator_bar.rb
36
+ lib/gruff/area.rb
37
+ lib/gruff/bar.rb
38
+ lib/gruff/bar_conversion.rb
39
+ lib/gruff/base.rb
40
+ lib/gruff/bullet.rb
41
+ lib/gruff/deprecated.rb
42
+ lib/gruff/dot.rb
43
+ lib/gruff/line.rb
44
+ lib/gruff/mini/bar.rb
45
+ lib/gruff/mini/legend.rb
46
+ lib/gruff/mini/pie.rb
47
+ lib/gruff/mini/side_bar.rb
48
+ lib/gruff/net.rb
49
+ lib/gruff/photo_bar.rb
50
+ lib/gruff/pie.rb
51
+ lib/gruff/scene.rb
52
+ lib/gruff/side_bar.rb
53
+ lib/gruff/side_stacked_bar.rb
54
+ lib/gruff/spider.rb
55
+ lib/gruff/stacked_area.rb
56
+ lib/gruff/stacked_bar.rb
57
+ lib/gruff/stacked_mixin.rb
58
+ rails_generators/gruff/gruff_generator.rb
59
+ rails_generators/gruff/templates/controller.rb
60
+ rails_generators/gruff/templates/functional_test.rb
61
+ test/gruff_test_case.rb
62
+ test/test_accumulator_bar.rb
63
+ test/test_area.rb
64
+ test/test_bar.rb
65
+ test/test_base.rb
66
+ test/test_bullet.rb
67
+ test/test_dot.rb
68
+ test/test_legend.rb
69
+ test/test_line.rb
70
+ test/test_mini_bar.rb
71
+ test/test_mini_pie.rb
72
+ test/test_mini_side_bar.rb
73
+ test/test_net.rb
74
+ test/test_photo.rb
75
+ test/test_pie.rb
76
+ test/test_scene.rb
77
+ test/test_side_bar.rb
78
+ test/test_sidestacked_bar.rb
79
+ test/test_spider.rb
80
+ test/test_stacked_area.rb
81
+ test/test_stacked_bar.rb
@@ -0,0 +1,139 @@
1
+ # Gruff Graphs
2
+
3
+ [![Build Status](https://travis-ci.org/topfunky/gruff.png?branch=master)](https://travis-ci.org/topfunky/gruff)
4
+ [![Gem Version](https://badge.fury.io/rb/gruff.png)](http://badge.fury.io/rb/gruff)
5
+
6
+ A library for making beautiful graphs.
7
+
8
+ ## WARNING
9
+
10
+ This is beta-quality software. It works well according to our tests,
11
+ but the API may change and other features will be added.
12
+ We are working to make Gruff production quality software.
13
+
14
+ ## Installation
15
+
16
+ Add this line to your application's Gemfile:
17
+
18
+ gem 'gruff'
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install gruff
27
+
28
+ ## Usage
29
+
30
+ ```Ruby
31
+ require 'gruff'
32
+ g = Gruff::Line.new
33
+ g.title = 'Wow! Look at this!'
34
+ g.labels = { 0 => '5/6', 1 => '5/15', 2 => '5/24', 3 => '5/30', 4 => '6/4',
35
+ 5 => '6/12', 6 => '6/21', 7 => '6/28' }
36
+ g.data :Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]
37
+ g.data :Charles, [80, 54, 67, 54, 68, 70, 90, 95]
38
+ g.data :Julie, [22, 29, 35, 38, 36, 40, 46, 57]
39
+ g.data :Jane, [95, 95, 95, 90, 85, 80, 88, 100]
40
+ g.data :Philip, [90, 34, 23, 12, 78, 89, 98, 88]
41
+ g.data :Arthur, [5, 10, 13, 11, 6, 16, 22, 32]
42
+ g.write('exciting.png')
43
+ ```
44
+
45
+ ## Examples
46
+
47
+ You can find many examples in the [test](https://github.com/topfunky/gruff/tree/master/test)
48
+ directory along with their resulting charts in the
49
+ [output](https://github.com/topfunky/gruff/tree/master/test/output) directory.
50
+
51
+ You can find older examples here: http://nubyonrails.com/pages/gruff
52
+
53
+ ### Accumulator bar chart
54
+
55
+ ![Accumulator bar chart](https://raw.github.com/topfunky/gruff/master/test/output/accum_bar.png)
56
+
57
+ ### Area chart
58
+
59
+ ![Area chart](https://raw.github.com/topfunky/gruff/master/test/output/area_keynote.png)
60
+
61
+ ### Bar chart
62
+
63
+ ![Bar chart](https://raw.github.com/topfunky/gruff/master/test/output/bar_rails_keynote.png)
64
+
65
+ ### Bezier chart
66
+
67
+ In progress!
68
+
69
+ ![Bezier chart](https://raw.github.com/topfunky/gruff/master/test/output/bezier_3.png)
70
+
71
+ ### Bullet chart
72
+
73
+ In progress!
74
+
75
+ ![Bullet chart](https://raw.github.com/topfunky/gruff/master/test/output/bullet_greyscale.png)
76
+
77
+ ### Dot chart
78
+
79
+ ![Dot chart](https://raw.github.com/topfunky/gruff/master/test/output/dot.png)
80
+
81
+ ### Line chart
82
+
83
+ ![Line chart](https://raw.github.com/topfunky/gruff/master/test/output/line_theme_rails_keynote_.png)
84
+
85
+ ### LineXY chart
86
+
87
+ ![LineXY chart](https://raw.github.com/topfunky/gruff/master/test/output/line_xy.png)
88
+
89
+ ### Net chart
90
+
91
+ ![Net chart](https://raw.github.com/topfunky/gruff/master/test/output/net_wide_graph.png)
92
+
93
+ ### Pie chart
94
+
95
+ ![Pie chart](https://raw.github.com/topfunky/gruff/master/test/output/pie_pastel.png)
96
+
97
+ ### Scatter chart
98
+
99
+ ![Scatter chart](https://raw.github.com/topfunky/gruff/master/test/output/scatter_basic.png)
100
+
101
+ ### Side bar chart
102
+
103
+ ![Side bar chart](https://raw.github.com/topfunky/gruff/master/test/output/side_bar.png)
104
+
105
+ ### Side stacked bar chart
106
+
107
+ ![Side stacked bar chart](https://raw.github.com/topfunky/gruff/master/test/output/side_stacked_bar_keynote.png)
108
+
109
+ ### Spider chart
110
+
111
+ ![Spider chart](https://raw.github.com/topfunky/gruff/master/test/output/spider_37signals.png)
112
+
113
+ ### Stacked area chart
114
+
115
+ ![Stacked area chart](https://raw.github.com/topfunky/gruff/master/test/output/stacked_area_keynote.png)
116
+
117
+ ### Stacked bar chart
118
+
119
+ ![Stacked bar chart](https://raw.github.com/topfunky/gruff/master/test/output/stacked_bar_keynote.png)
120
+
121
+
122
+ ## Documentation
123
+
124
+ http://www.rubydoc.info/github/topfunky/gruff/frames
125
+
126
+
127
+ ## Contributing
128
+
129
+ ### Source
130
+
131
+ The source for this project is now kept at GitHub:
132
+
133
+ http://github.com/topfunky/gruff
134
+
135
+ 1. Fork it
136
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
137
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
138
+ 4. Push to the branch (`git push origin my-new-feature`)
139
+ 5. Create new Pull Request