ziya 2.0.7 → 2.1.6

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 (612) hide show
  1. data/Manifest.txt +561 -89
  2. data/README.txt +203 -108
  3. data/Rakefile +7 -6
  4. data/bin/ziyafy +38 -14
  5. data/docs/History.txt.html +50 -0
  6. data/docs/README.txt.html +403 -0
  7. data/docs/String.html +832 -0
  8. data/docs/Ziya.html +636 -0
  9. data/docs/Ziya/Charts.html +909 -0
  10. data/docs/Ziya/Charts/Area.html +672 -0
  11. data/docs/Ziya/Charts/AreaThreed.html +672 -0
  12. data/docs/Ziya/Charts/Bar.html +672 -0
  13. data/docs/Ziya/Charts/Base.html +1101 -0
  14. data/docs/Ziya/Charts/Bubble.html +672 -0
  15. data/docs/Ziya/Charts/CandleStick.html +672 -0
  16. data/docs/Ziya/Charts/Column.html +672 -0
  17. data/docs/Ziya/Charts/ColumnThreed.html +672 -0
  18. data/docs/Ziya/Charts/Custom.html +672 -0
  19. data/docs/Ziya/Charts/Donut.html +672 -0
  20. data/docs/Ziya/Charts/FloatingBar.html +672 -0
  21. data/docs/Ziya/Charts/FloatingColumn.html +672 -0
  22. data/docs/Ziya/Charts/ImageColumn.html +672 -0
  23. data/docs/Ziya/Charts/ImagePie.html +672 -0
  24. data/docs/Ziya/Charts/Line.html +672 -0
  25. data/docs/Ziya/Charts/Mixed.html +672 -0
  26. data/docs/Ziya/Charts/ParallelThreedColumn.html +672 -0
  27. data/docs/Ziya/Charts/Pie.html +672 -0
  28. data/docs/Ziya/Charts/PieThreed.html +672 -0
  29. data/docs/Ziya/Charts/Polar.html +672 -0
  30. data/docs/Ziya/Charts/Scatter.html +672 -0
  31. data/docs/Ziya/Charts/StackedArea.html +672 -0
  32. data/docs/Ziya/Charts/StackedBar.html +672 -0
  33. data/docs/Ziya/Charts/StackedColumn.html +672 -0
  34. data/docs/Ziya/Charts/StackedThreedArea.html +672 -0
  35. data/docs/Ziya/Charts/StackedThreedColumn.html +672 -0
  36. data/docs/Ziya/Charts/Support.html +1245 -0
  37. data/docs/Ziya/Charts/Support/Area.html +582 -0
  38. data/docs/Ziya/Charts/Support/AxisCategory.html +583 -0
  39. data/docs/Ziya/Charts/Support/AxisTicks.html +644 -0
  40. data/docs/Ziya/Charts/Support/AxisValue.html +583 -0
  41. data/docs/Ziya/Charts/Support/Base.html +577 -0
  42. data/docs/Ziya/Charts/Support/Bevel.html +583 -0
  43. data/docs/Ziya/Charts/Support/Blur.html +583 -0
  44. data/docs/Ziya/Charts/Support/Button.html +583 -0
  45. data/docs/Ziya/Charts/Support/ChartBorder.html +582 -0
  46. data/docs/Ziya/Charts/Support/ChartGridH.html +616 -0
  47. data/docs/Ziya/Charts/Support/ChartGridV.html +616 -0
  48. data/docs/Ziya/Charts/Support/ChartGuide.html +582 -0
  49. data/docs/Ziya/Charts/Support/ChartLabel.html +583 -0
  50. data/docs/Ziya/Charts/Support/ChartNote.html +582 -0
  51. data/docs/Ziya/Charts/Support/ChartPref.html +589 -0
  52. data/docs/Ziya/Charts/Support/ChartRect.html +632 -0
  53. data/docs/Ziya/Charts/Support/ChartTransition.html +613 -0
  54. data/docs/Ziya/Charts/Support/Circle.html +583 -0
  55. data/docs/Ziya/Charts/Support/ContextMenu.html +583 -0
  56. data/docs/Ziya/Charts/Support/Draw.html +886 -0
  57. data/docs/Ziya/Charts/Support/DrawBase.html +577 -0
  58. data/docs/Ziya/Charts/Support/Filter.html +668 -0
  59. data/docs/Ziya/Charts/Support/FlashToJavascript.html +596 -0
  60. data/docs/Ziya/Charts/Support/Glow.html +583 -0
  61. data/docs/Ziya/Charts/Support/Image.html +583 -0
  62. data/docs/Ziya/Charts/Support/Legend.html +582 -0
  63. data/docs/Ziya/Charts/Support/Line.html +583 -0
  64. data/docs/Ziya/Charts/Support/Link.html +734 -0
  65. data/docs/Ziya/Charts/Support/LinkData.html +589 -0
  66. data/docs/Ziya/Charts/Support/Rect.html +583 -0
  67. data/docs/Ziya/Charts/Support/Scroll.html +583 -0
  68. data/docs/Ziya/Charts/Support/Series.html +583 -0
  69. data/docs/Ziya/Charts/Support/SeriesColor.html +676 -0
  70. data/docs/Ziya/Charts/Support/SeriesExplode.html +676 -0
  71. data/docs/Ziya/Charts/Support/Shadow.html +583 -0
  72. data/docs/Ziya/Charts/Support/Text.html +664 -0
  73. data/docs/Ziya/Charts/Support/Tooltip.html +583 -0
  74. data/docs/Ziya/Charts/Support/Update.html +590 -0
  75. data/docs/Ziya/Gauges.html +644 -0
  76. data/docs/Ziya/Gauges/Base.html +1052 -0
  77. data/docs/Ziya/Gauges/Radial.html +654 -0
  78. data/docs/Ziya/Gauges/Signal.html +794 -0
  79. data/docs/Ziya/Gauges/Support.html +726 -0
  80. data/docs/Ziya/Gauges/Support/Area.html +577 -0
  81. data/docs/Ziya/Gauges/Support/Base.html +690 -0
  82. data/docs/Ziya/Gauges/Support/Circle.html +577 -0
  83. data/docs/Ziya/Gauges/Support/Design.html +577 -0
  84. data/docs/Ziya/Gauges/Support/Image.html +577 -0
  85. data/docs/Ziya/Gauges/Support/Line.html +577 -0
  86. data/docs/Ziya/Gauges/Support/Link.html +577 -0
  87. data/docs/Ziya/Gauges/Support/Move.html +577 -0
  88. data/docs/Ziya/Gauges/Support/Point.html +577 -0
  89. data/docs/Ziya/Gauges/Support/Polygon.html +577 -0
  90. data/docs/Ziya/Gauges/Support/RadialBase.html +654 -0
  91. data/docs/Ziya/Gauges/Support/RadialNumbers.html +694 -0
  92. data/docs/Ziya/Gauges/Support/RadialTicks.html +676 -0
  93. data/docs/Ziya/Gauges/Support/Rect.html +577 -0
  94. data/docs/Ziya/Gauges/Support/Rotate.html +577 -0
  95. data/docs/Ziya/Gauges/Support/Scale.html +577 -0
  96. data/docs/Ziya/Gauges/Support/Text.html +656 -0
  97. data/docs/Ziya/Gauges/Support/Update.html +577 -0
  98. data/docs/Ziya/Gauges/Thermo.html +826 -0
  99. data/docs/Ziya/HtmlHelpers.html +597 -0
  100. data/docs/Ziya/HtmlHelpers/Charts.html +1399 -0
  101. data/docs/Ziya/HtmlHelpers/Gauges.html +987 -0
  102. data/docs/Ziya/HtmlHelpers/Maps.html +950 -0
  103. data/docs/Ziya/Maps.html +713 -0
  104. data/docs/Ziya/Maps/Australia.html +648 -0
  105. data/docs/Ziya/Maps/Base.html +1099 -0
  106. data/docs/Ziya/Maps/Belgium.html +648 -0
  107. data/docs/Ziya/Maps/Brazil.html +648 -0
  108. data/docs/Ziya/Maps/Canada.html +648 -0
  109. data/docs/Ziya/Maps/Europe.html +648 -0
  110. data/docs/Ziya/Maps/France.html +648 -0
  111. data/docs/Ziya/Maps/Geocode.html +752 -0
  112. data/docs/Ziya/Maps/Germany.html +648 -0
  113. data/docs/Ziya/Maps/Italy.html +648 -0
  114. data/docs/Ziya/Maps/Mexico.html +648 -0
  115. data/docs/Ziya/Maps/Support.html +798 -0
  116. data/docs/Ziya/Maps/Support/Arc.html +577 -0
  117. data/docs/Ziya/Maps/Support/ArcColor.html +577 -0
  118. data/docs/Ziya/Maps/Support/ArcRange.html +577 -0
  119. data/docs/Ziya/Maps/Support/BackgroundColor.html +577 -0
  120. data/docs/Ziya/Maps/Support/Base.html +792 -0
  121. data/docs/Ziya/Maps/Support/DefaultColor.html +577 -0
  122. data/docs/Ziya/Maps/Support/DefaultPoint.html +577 -0
  123. data/docs/Ziya/Maps/Support/FirstZoom.html +577 -0
  124. data/docs/Ziya/Maps/Support/HeatRange.html +658 -0
  125. data/docs/Ziya/Maps/Support/Hover.html +577 -0
  126. data/docs/Ziya/Maps/Support/Line.html +577 -0
  127. data/docs/Ziya/Maps/Support/LineColor.html +577 -0
  128. data/docs/Ziya/Maps/Support/LineRange.html +577 -0
  129. data/docs/Ziya/Maps/Support/OutlineColor.html +577 -0
  130. data/docs/Ziya/Maps/Support/Point.html +577 -0
  131. data/docs/Ziya/Maps/Support/PointRange.html +577 -0
  132. data/docs/Ziya/Maps/Support/Range.html +753 -0
  133. data/docs/Ziya/Maps/Support/Ranges.html +658 -0
  134. data/docs/Ziya/Maps/Support/Region.html +577 -0
  135. data/docs/Ziya/Maps/Support/ScalePoints.html +577 -0
  136. data/docs/Ziya/Maps/Support/ShowName.html +577 -0
  137. data/docs/Ziya/Maps/Support/State.html +577 -0
  138. data/docs/Ziya/Maps/Support/StateInfoIcon.html +577 -0
  139. data/docs/Ziya/Maps/Support/ZoomMode.html +577 -0
  140. data/docs/Ziya/Maps/Support/ZoomOutButton.html +577 -0
  141. data/docs/Ziya/Maps/Support/ZoomOutScale.html +577 -0
  142. data/docs/Ziya/Maps/Sweden.html +648 -0
  143. data/docs/Ziya/Maps/Uk.html +648 -0
  144. data/docs/Ziya/Maps/Us.html +648 -0
  145. data/docs/Ziya/Maps/World.html +648 -0
  146. data/docs/Ziya/YamlHelpers.html +592 -0
  147. data/docs/Ziya/YamlHelpers/Gauges.html +848 -0
  148. data/docs/Ziya/YamlHelpers/Maps.html +750 -0
  149. data/docs/Ziya/Ziyafy.html +735 -0
  150. data/docs/bin/ziyafy.html +52 -0
  151. data/docs/created.rid +1 -0
  152. data/docs/examples/charts/public/charts/themes/readme.txt.html +61 -0
  153. data/docs/examples/maps/public/maps/themes/readme.txt.html +61 -0
  154. data/docs/images/brick.png +0 -0
  155. data/docs/images/brick_link.png +0 -0
  156. data/docs/images/bullet_black.png +0 -0
  157. data/docs/images/date.png +0 -0
  158. data/docs/images/macFFBgHack.png +0 -0
  159. data/docs/images/package.png +0 -0
  160. data/docs/images/page_green.png +0 -0
  161. data/docs/images/page_white_width.png +0 -0
  162. data/docs/images/plugin.png +0 -0
  163. data/docs/images/ruby.png +0 -0
  164. data/docs/images/tag_green.png +0 -0
  165. data/docs/images/wrench.png +0 -0
  166. data/docs/images/wrench_orange.png +0 -0
  167. data/docs/images/zoom.png +0 -0
  168. data/docs/index.html +978 -0
  169. data/docs/js/darkfish.js +91 -0
  170. data/docs/js/jquery.js +32 -0
  171. data/docs/js/quicksearch.js +135 -0
  172. data/docs/js/thickbox-compressed.js +10 -0
  173. data/docs/lib/ziya.rb.html +43 -0
  174. data/docs/lib/ziya/charts/area.rb.html +54 -0
  175. data/docs/lib/ziya/charts/area_threed.rb.html +153 -0
  176. data/docs/lib/ziya/charts/bar.rb.html +45 -0
  177. data/docs/lib/ziya/charts/base.rb.html +71 -0
  178. data/docs/lib/ziya/charts/bubble.rb.html +54 -0
  179. data/docs/lib/ziya/charts/candle_stick.rb.html +45 -0
  180. data/docs/lib/ziya/charts/column.rb.html +45 -0
  181. data/docs/lib/ziya/charts/column_threed.rb.html +45 -0
  182. data/docs/lib/ziya/charts/custom.rb.html +54 -0
  183. data/docs/lib/ziya/charts/donut.rb.html +54 -0
  184. data/docs/lib/ziya/charts/floating_bar.rb.html +45 -0
  185. data/docs/lib/ziya/charts/floating_column.rb.html +45 -0
  186. data/docs/lib/ziya/charts/image_column.rb.html +54 -0
  187. data/docs/lib/ziya/charts/image_pie.rb.html +54 -0
  188. data/docs/lib/ziya/charts/line.rb.html +45 -0
  189. data/docs/lib/ziya/charts/mixed.rb.html +45 -0
  190. data/docs/lib/ziya/charts/parallel_threed_column.rb.html +45 -0
  191. data/docs/lib/ziya/charts/pie.rb.html +45 -0
  192. data/docs/lib/ziya/charts/pie_threed.rb.html +45 -0
  193. data/docs/lib/ziya/charts/polar.rb.html +45 -0
  194. data/docs/lib/ziya/charts/scatter.rb.html +45 -0
  195. data/docs/lib/ziya/charts/stacked_area.rb.html +45 -0
  196. data/docs/lib/ziya/charts/stacked_bar.rb.html +45 -0
  197. data/docs/lib/ziya/charts/stacked_column.rb.html +45 -0
  198. data/docs/lib/ziya/charts/stacked_threed_area.rb.html +45 -0
  199. data/docs/lib/ziya/charts/stacked_threed_column.rb.html +45 -0
  200. data/docs/lib/ziya/charts/support/area.rb.html +56 -0
  201. data/docs/lib/ziya/charts/support/axis_category.rb.html +407 -0
  202. data/docs/lib/ziya/charts/support/axis_ticks.rb.html +48 -0
  203. data/docs/lib/ziya/charts/support/axis_value.rb.html +48 -0
  204. data/docs/lib/ziya/charts/support/base.rb.html +64 -0
  205. data/docs/lib/ziya/charts/support/bevel.rb.html +48 -0
  206. data/docs/lib/ziya/charts/support/blur.rb.html +48 -0
  207. data/docs/lib/ziya/charts/support/button.rb.html +48 -0
  208. data/docs/lib/ziya/charts/support/chart_border.rb.html +48 -0
  209. data/docs/lib/ziya/charts/support/chart_grid_h.rb.html +48 -0
  210. data/docs/lib/ziya/charts/support/chart_grid_v.rb.html +48 -0
  211. data/docs/lib/ziya/charts/support/chart_guide.rb.html +48 -0
  212. data/docs/lib/ziya/charts/support/chart_label.rb.html +49 -0
  213. data/docs/lib/ziya/charts/support/chart_note.rb.html +53 -0
  214. data/docs/lib/ziya/charts/support/chart_pref.rb.html +48 -0
  215. data/docs/lib/ziya/charts/support/chart_rect.rb.html +48 -0
  216. data/docs/lib/ziya/charts/support/chart_transition.rb.html +48 -0
  217. data/docs/lib/ziya/charts/support/circle.rb.html +48 -0
  218. data/docs/lib/ziya/charts/support/context_menu.rb.html +47 -0
  219. data/docs/lib/ziya/charts/support/draw.rb.html +57 -0
  220. data/docs/lib/ziya/charts/support/draw_base.rb.html +48 -0
  221. data/docs/lib/ziya/charts/support/filter.rb.html +52 -0
  222. data/docs/lib/ziya/charts/support/flash_to_javascript.rb.html +48 -0
  223. data/docs/lib/ziya/charts/support/glow.rb.html +48 -0
  224. data/docs/lib/ziya/charts/support/image.rb.html +52 -0
  225. data/docs/lib/ziya/charts/support/legend.rb.html +48 -0
  226. data/docs/lib/ziya/charts/support/line.rb.html +48 -0
  227. data/docs/lib/ziya/charts/support/link.rb.html +48 -0
  228. data/docs/lib/ziya/charts/support/link_data.rb.html +48 -0
  229. data/docs/lib/ziya/charts/support/rect.rb.html +48 -0
  230. data/docs/lib/ziya/charts/support/scroll.rb.html +50 -0
  231. data/docs/lib/ziya/charts/support/series.rb.html +47 -0
  232. data/docs/lib/ziya/charts/support/series_color.rb.html +62 -0
  233. data/docs/lib/ziya/charts/support/series_explode.rb.html +65 -0
  234. data/docs/lib/ziya/charts/support/shadow.rb.html +48 -0
  235. data/docs/lib/ziya/charts/support/text.rb.html +51 -0
  236. data/docs/lib/ziya/charts/support/tooltip.rb.html +53 -0
  237. data/docs/lib/ziya/charts/support/update.rb.html +49 -0
  238. data/docs/lib/ziya/core_ext/string.rb.html +50 -0
  239. data/docs/lib/ziya/gauges/base.rb.html +54 -0
  240. data/docs/lib/ziya/gauges/radial.rb.html +64 -0
  241. data/docs/lib/ziya/gauges/signal.rb.html +49 -0
  242. data/docs/lib/ziya/gauges/support/area.rb.html +57 -0
  243. data/docs/lib/ziya/gauges/support/base.rb.html +39 -0
  244. data/docs/lib/ziya/gauges/support/circle.rb.html +57 -0
  245. data/docs/lib/ziya/gauges/support/design.rb.html +39 -0
  246. data/docs/lib/ziya/gauges/support/image.rb.html +57 -0
  247. data/docs/lib/ziya/gauges/support/line.rb.html +57 -0
  248. data/docs/lib/ziya/gauges/support/link.rb.html +57 -0
  249. data/docs/lib/ziya/gauges/support/move.rb.html +57 -0
  250. data/docs/lib/ziya/gauges/support/point.rb.html +57 -0
  251. data/docs/lib/ziya/gauges/support/polygon.rb.html +57 -0
  252. data/docs/lib/ziya/gauges/support/radial_base.rb.html +58 -0
  253. data/docs/lib/ziya/gauges/support/radial_numbers.rb.html +60 -0
  254. data/docs/lib/ziya/gauges/support/radial_ticks.rb.html +57 -0
  255. data/docs/lib/ziya/gauges/support/rect.rb.html +57 -0
  256. data/docs/lib/ziya/gauges/support/rotate.rb.html +57 -0
  257. data/docs/lib/ziya/gauges/support/scale.rb.html +57 -0
  258. data/docs/lib/ziya/gauges/support/text.rb.html +57 -0
  259. data/docs/lib/ziya/gauges/support/update.rb.html +57 -0
  260. data/docs/lib/ziya/gauges/thermo.rb.html +48 -0
  261. data/docs/lib/ziya/html_helpers.rb.html +39 -0
  262. data/docs/lib/ziya/html_helpers/base.rb.html +48 -0
  263. data/docs/lib/ziya/html_helpers/charts.rb.html +48 -0
  264. data/docs/lib/ziya/html_helpers/gauges.rb.html +48 -0
  265. data/docs/lib/ziya/html_helpers/maps.rb.html +39 -0
  266. data/docs/lib/ziya/maps/australia.rb.html +48 -0
  267. data/docs/lib/ziya/maps/base.rb.html +62 -0
  268. data/docs/lib/ziya/maps/belgium.rb.html +39 -0
  269. data/docs/lib/ziya/maps/brazil.rb.html +39 -0
  270. data/docs/lib/ziya/maps/canada.rb.html +39 -0
  271. data/docs/lib/ziya/maps/europe.rb.html +39 -0
  272. data/docs/lib/ziya/maps/france.rb.html +39 -0
  273. data/docs/lib/ziya/maps/geocode.rb.html +45 -0
  274. data/docs/lib/ziya/maps/germany.rb.html +39 -0
  275. data/docs/lib/ziya/maps/italy.rb.html +39 -0
  276. data/docs/lib/ziya/maps/mexico.rb.html +39 -0
  277. data/docs/lib/ziya/maps/support/arc.rb.html +48 -0
  278. data/docs/lib/ziya/maps/support/arc_color.rb.html +48 -0
  279. data/docs/lib/ziya/maps/support/arc_range.rb.html +48 -0
  280. data/docs/lib/ziya/maps/support/background_color.rb.html +48 -0
  281. data/docs/lib/ziya/maps/support/base.rb.html +48 -0
  282. data/docs/lib/ziya/maps/support/default_color.rb.html +48 -0
  283. data/docs/lib/ziya/maps/support/default_point.rb.html +48 -0
  284. data/docs/lib/ziya/maps/support/first_zoom.rb.html +48 -0
  285. data/docs/lib/ziya/maps/support/heat_range.rb.html +50 -0
  286. data/docs/lib/ziya/maps/support/hover.rb.html +48 -0
  287. data/docs/lib/ziya/maps/support/line.rb.html +48 -0
  288. data/docs/lib/ziya/maps/support/line_color.rb.html +48 -0
  289. data/docs/lib/ziya/maps/support/line_range.rb.html +48 -0
  290. data/docs/lib/ziya/maps/support/outline_color.rb.html +48 -0
  291. data/docs/lib/ziya/maps/support/point.rb.html +48 -0
  292. data/docs/lib/ziya/maps/support/point_range.rb.html +48 -0
  293. data/docs/lib/ziya/maps/support/range.rb.html +48 -0
  294. data/docs/lib/ziya/maps/support/ranges.rb.html +47 -0
  295. data/docs/lib/ziya/maps/support/region.rb.html +48 -0
  296. data/docs/lib/ziya/maps/support/scale_points.rb.html +48 -0
  297. data/docs/lib/ziya/maps/support/show_name.rb.html +48 -0
  298. data/docs/lib/ziya/maps/support/state.rb.html +48 -0
  299. data/docs/lib/ziya/maps/support/state_info_icon.rb.html +48 -0
  300. data/docs/lib/ziya/maps/support/zoom_mode.rb.html +48 -0
  301. data/docs/lib/ziya/maps/support/zoom_out_button.rb.html +48 -0
  302. data/docs/lib/ziya/maps/support/zoom_out_scale.rb.html +48 -0
  303. data/docs/lib/ziya/maps/sweden.rb.html +39 -0
  304. data/docs/lib/ziya/maps/uk.rb.html +39 -0
  305. data/docs/lib/ziya/maps/us.rb.html +39 -0
  306. data/docs/lib/ziya/maps/world.rb.html +39 -0
  307. data/docs/lib/ziya/utils/logger.rb.html +53 -0
  308. data/docs/lib/ziya/version.rb.html +39 -0
  309. data/docs/lib/ziya/yaml_helpers.rb.html +39 -0
  310. data/docs/lib/ziya/yaml_helpers/base.rb.html +48 -0
  311. data/docs/lib/ziya/yaml_helpers/charts.rb.html +50 -0
  312. data/docs/lib/ziya/yaml_helpers/gauges.rb.html +39 -0
  313. data/docs/lib/ziya/yaml_helpers/maps.rb.html +39 -0
  314. data/docs/rdoc.css +664 -0
  315. data/docs/release_notes.txt.html +51 -0
  316. data/docs/resources/charts/themes/readme.txt.html +61 -0
  317. data/docs/resources/maps/themes/readme.txt.html +61 -0
  318. data/examples/charts/basic_chart.rb +55 -0
  319. data/{charts → examples/charts/public/charts}/AC_RunActiveContent.js +0 -0
  320. data/examples/charts/public/charts/charts.swf +0 -0
  321. data/examples/charts/public/charts/charts_library/ar3d.swf +0 -0
  322. data/examples/charts/public/charts/charts_library/arno.swf +0 -0
  323. data/examples/charts/public/charts/charts_library/ars3.swf +0 -0
  324. data/examples/charts/public/charts/charts_library/arst.swf +0 -0
  325. data/examples/charts/public/charts/charts_library/brfl.swf +0 -0
  326. data/examples/charts/public/charts/charts_library/brno.swf +0 -0
  327. data/examples/charts/public/charts/charts_library/brst.swf +0 -0
  328. data/examples/charts/public/charts/charts_library/buno.swf +0 -0
  329. data/examples/charts/public/charts/charts_library/cl3d.swf +0 -0
  330. data/examples/charts/public/charts/charts_library/clfl.swf +0 -0
  331. data/examples/charts/public/charts/charts_library/clim.swf +0 -0
  332. data/examples/charts/public/charts/charts_library/clno.swf +0 -0
  333. data/examples/charts/public/charts/charts_library/clp3.swf +0 -0
  334. data/examples/charts/public/charts/charts_library/cls3.swf +0 -0
  335. data/examples/charts/public/charts/charts_library/clst.swf +0 -0
  336. data/examples/charts/public/charts/charts_library/cnno.swf +0 -0
  337. data/{charts → examples/charts/public/charts}/charts_library/dollar.jpg +0 -0
  338. data/examples/charts/public/charts/charts_library/dono.swf +0 -0
  339. data/examples/charts/public/charts/charts_library/lnno.swf +0 -0
  340. data/examples/charts/public/charts/charts_library/mxno.swf +0 -0
  341. data/examples/charts/public/charts/charts_library/pi3d.swf +0 -0
  342. data/{charts → examples/charts/public/charts}/charts_library/pie.jpg +0 -0
  343. data/examples/charts/public/charts/charts_library/piim.swf +0 -0
  344. data/examples/charts/public/charts/charts_library/pino.swf +0 -0
  345. data/examples/charts/public/charts/charts_library/pono.swf +0 -0
  346. data/examples/charts/public/charts/charts_library/scno.swf +0 -0
  347. data/examples/charts/public/charts/full_screen.fla +0 -0
  348. data/{charts → examples/charts/public/charts}/full_screen.swf +0 -0
  349. data/{charts → examples/charts/public/charts}/scripts/output_jpg.php +0 -0
  350. data/{charts → examples/charts/public/charts}/sliders/black.swf +0 -0
  351. data/{charts → examples/charts/public/charts}/sliders/preview_handle_1.swf +0 -0
  352. data/{charts → examples/charts/public/charts}/sliders/preview_handle_2.swf +0 -0
  353. data/examples/charts/public/charts/themes/cool_theme/column_chart.yml +150 -0
  354. data/examples/charts/public/charts/themes/cool_theme/line_chart.yml +5 -0
  355. data/examples/charts/public/charts/themes/readme.txt +13 -0
  356. data/examples/charts/public/fred.xml +21 -0
  357. data/examples/charts/views/index.erb +17 -0
  358. data/examples/maps/basic_map.rb +63 -0
  359. data/examples/maps/helpers/map_helper.rb +15 -0
  360. data/examples/maps/models/confidential_herpes_report.rb +78 -0
  361. data/examples/maps/public/javascripts/jquery-1.3.2.js +4376 -0
  362. data/examples/maps/public/map.xml +336 -0
  363. data/examples/maps/public/maps/js/Exception.js +45 -0
  364. data/examples/maps/public/maps/js/FlashProxy.js +72 -0
  365. data/examples/maps/public/maps/js/FlashSerializer.js +165 -0
  366. data/examples/maps/public/maps/js/FlashTag.js +111 -0
  367. data/examples/maps/public/maps/js/JavaScriptFlashGateway.js +455 -0
  368. data/examples/maps/public/maps/js/JavaScriptFlashGateway.swf +0 -0
  369. data/examples/maps/public/maps/map_library/australia.swf +0 -0
  370. data/examples/maps/public/maps/map_library/belgium.swf +0 -0
  371. data/examples/maps/public/maps/map_library/brazil.swf +0 -0
  372. data/examples/maps/public/maps/map_library/canada.swf +0 -0
  373. data/examples/maps/public/maps/map_library/europe.swf +0 -0
  374. data/examples/maps/public/maps/map_library/france.swf +0 -0
  375. data/examples/maps/public/maps/map_library/germany.swf +0 -0
  376. data/examples/maps/public/maps/map_library/italy.swf +0 -0
  377. data/examples/maps/public/maps/map_library/mexico.swf +0 -0
  378. data/examples/maps/public/maps/map_library/sweden.swf +0 -0
  379. data/examples/maps/public/maps/map_library/uk_ireland.swf +0 -0
  380. data/examples/maps/public/maps/map_library/us.swf +0 -0
  381. data/examples/maps/public/maps/map_library/us_canada.swf +0 -0
  382. data/examples/maps/public/maps/map_library/world.swf +0 -0
  383. data/examples/maps/public/maps/themes/default/base_map.yml +27 -0
  384. data/examples/maps/public/maps/themes/default/us_map.yml +20 -0
  385. data/examples/maps/public/maps/themes/default/us_map_2.yml +17 -0
  386. data/examples/maps/public/maps/themes/readme.txt +13 -0
  387. data/examples/maps/public/stylesheets/map.css +16 -0
  388. data/examples/maps/views/index.erb +26 -0
  389. data/examples/maps/views/layout.erb +21 -0
  390. data/gem_script.rb +5 -0
  391. data/lib/ziya.rb +20 -11
  392. data/lib/ziya/charts/base.rb +114 -90
  393. data/lib/ziya/{components → charts/support}/area.rb +2 -2
  394. data/lib/ziya/{components → charts/support}/axis_category.rb +1 -1
  395. data/lib/ziya/{components → charts/support}/axis_ticks.rb +1 -1
  396. data/lib/ziya/{components → charts/support}/axis_value.rb +1 -1
  397. data/lib/ziya/{components → charts/support}/base.rb +9 -21
  398. data/lib/ziya/{components → charts/support}/bevel.rb +1 -1
  399. data/lib/ziya/{components → charts/support}/blur.rb +1 -1
  400. data/lib/ziya/{components → charts/support}/button.rb +1 -1
  401. data/lib/ziya/{components → charts/support}/chart_border.rb +1 -1
  402. data/lib/ziya/{components → charts/support}/chart_grid_h.rb +1 -1
  403. data/lib/ziya/{components → charts/support}/chart_grid_v.rb +1 -1
  404. data/lib/ziya/{components → charts/support}/chart_guide.rb +1 -1
  405. data/lib/ziya/{components → charts/support}/chart_label.rb +1 -1
  406. data/lib/ziya/{components → charts/support}/chart_note.rb +1 -1
  407. data/lib/ziya/{components → charts/support}/chart_pref.rb +3 -2
  408. data/lib/ziya/{components → charts/support}/chart_rect.rb +1 -1
  409. data/lib/ziya/{components → charts/support}/chart_transition.rb +1 -1
  410. data/lib/ziya/{components → charts/support}/circle.rb +1 -1
  411. data/lib/ziya/{components → charts/support}/context_menu.rb +1 -3
  412. data/lib/ziya/charts/support/draw.rb +76 -0
  413. data/lib/ziya/{components → charts/support}/draw_base.rb +1 -1
  414. data/lib/ziya/{components → charts/support}/filter.rb +1 -1
  415. data/lib/ziya/charts/support/flash_to_javascript.rb +23 -0
  416. data/lib/ziya/{components → charts/support}/glow.rb +1 -1
  417. data/lib/ziya/{components → charts/support}/image.rb +1 -1
  418. data/lib/ziya/{components → charts/support}/legend.rb +1 -1
  419. data/lib/ziya/{components → charts/support}/line.rb +1 -1
  420. data/lib/ziya/{components → charts/support}/link.rb +9 -1
  421. data/lib/ziya/{components → charts/support}/link_data.rb +1 -1
  422. data/lib/ziya/{components → charts/support}/rect.rb +1 -1
  423. data/lib/ziya/{components → charts/support}/scroll.rb +1 -3
  424. data/lib/ziya/{components → charts/support}/series.rb +1 -3
  425. data/lib/ziya/{components → charts/support}/series_color.rb +1 -1
  426. data/lib/ziya/{components → charts/support}/series_explode.rb +1 -1
  427. data/lib/ziya/{components → charts/support}/shadow.rb +1 -1
  428. data/lib/ziya/{components → charts/support}/text.rb +9 -1
  429. data/lib/ziya/{components → charts/support}/tooltip.rb +1 -1
  430. data/lib/ziya/{components → charts/support}/update.rb +1 -1
  431. data/lib/ziya/core_ext/string.rb +31 -0
  432. data/lib/ziya/gauges/base.rb +17 -12
  433. data/lib/ziya/gauges/support/base.rb +4 -12
  434. data/lib/ziya/gauges/support/radial_numbers.rb +1 -1
  435. data/lib/ziya/html_helpers.rb +1 -0
  436. data/lib/ziya/html_helpers/base.rb +91 -0
  437. data/lib/ziya/html_helpers/charts.rb +200 -0
  438. data/lib/ziya/html_helpers/gauges.rb +90 -0
  439. data/lib/ziya/html_helpers/maps.rb +74 -0
  440. data/lib/ziya/maps/australia.rb +9 -0
  441. data/lib/ziya/maps/base.rb +409 -0
  442. data/lib/ziya/maps/belgium.rb +7 -0
  443. data/lib/ziya/maps/brazil.rb +7 -0
  444. data/lib/ziya/maps/canada.rb +7 -0
  445. data/lib/ziya/maps/europe.rb +7 -0
  446. data/lib/ziya/maps/france.rb +7 -0
  447. data/lib/ziya/maps/geocode.rb +18 -0
  448. data/lib/ziya/maps/germany.rb +7 -0
  449. data/lib/ziya/maps/italy.rb +7 -0
  450. data/lib/ziya/maps/mexico.rb +7 -0
  451. data/lib/ziya/maps/support/arc.rb +7 -0
  452. data/lib/ziya/maps/support/arc_color.rb +7 -0
  453. data/lib/ziya/maps/support/arc_range.rb +7 -0
  454. data/lib/ziya/maps/support/background_color.rb +7 -0
  455. data/lib/ziya/maps/support/base.rb +34 -0
  456. data/lib/ziya/maps/support/default_color.rb +7 -0
  457. data/lib/ziya/maps/support/default_point.rb +7 -0
  458. data/lib/ziya/maps/support/first_zoom.rb +7 -0
  459. data/lib/ziya/maps/support/heat_range.rb +35 -0
  460. data/lib/ziya/maps/support/hover.rb +7 -0
  461. data/lib/ziya/maps/support/line.rb +7 -0
  462. data/lib/ziya/maps/support/line_color.rb +7 -0
  463. data/lib/ziya/maps/support/line_range.rb +7 -0
  464. data/lib/ziya/maps/support/outline_color.rb +7 -0
  465. data/lib/ziya/maps/support/point.rb +8 -0
  466. data/lib/ziya/maps/support/point_range.rb +7 -0
  467. data/lib/ziya/maps/support/range.rb +31 -0
  468. data/lib/ziya/maps/support/ranges.rb +18 -0
  469. data/lib/ziya/maps/support/region.rb +7 -0
  470. data/lib/ziya/maps/support/scale_points.rb +7 -0
  471. data/lib/ziya/maps/support/show_name.rb +7 -0
  472. data/lib/ziya/maps/support/state.rb +7 -0
  473. data/lib/ziya/maps/support/state_info_icon.rb +7 -0
  474. data/lib/ziya/maps/support/zoom_mode.rb +7 -0
  475. data/lib/ziya/maps/support/zoom_out_button.rb +7 -0
  476. data/lib/ziya/maps/support/zoom_out_scale.rb +7 -0
  477. data/lib/ziya/maps/sweden.rb +7 -0
  478. data/lib/ziya/maps/uk.rb +7 -0
  479. data/lib/ziya/maps/us.rb +7 -0
  480. data/lib/ziya/maps/world.rb +7 -0
  481. data/lib/ziya/version.rb +3 -3
  482. data/lib/ziya/yaml_helpers.rb +1 -0
  483. data/lib/ziya/yaml_helpers/base.rb +20 -0
  484. data/lib/ziya/yaml_helpers/charts.rb +49 -0
  485. data/lib/ziya/yaml_helpers/gauges.rb +33 -0
  486. data/lib/ziya/yaml_helpers/maps.rb +17 -0
  487. data/resources/charts/AC_RunActiveContent.js +292 -0
  488. data/resources/charts/charts.swf +0 -0
  489. data/resources/charts/charts_library/ar3d.swf +0 -0
  490. data/resources/charts/charts_library/arno.swf +0 -0
  491. data/resources/charts/charts_library/ars3.swf +0 -0
  492. data/resources/charts/charts_library/arst.swf +0 -0
  493. data/resources/charts/charts_library/brfl.swf +0 -0
  494. data/resources/charts/charts_library/brno.swf +0 -0
  495. data/resources/charts/charts_library/brst.swf +0 -0
  496. data/resources/charts/charts_library/buno.swf +0 -0
  497. data/resources/charts/charts_library/cl3d.swf +0 -0
  498. data/resources/charts/charts_library/clfl.swf +0 -0
  499. data/resources/charts/charts_library/clim.swf +0 -0
  500. data/resources/charts/charts_library/clno.swf +0 -0
  501. data/resources/charts/charts_library/clp3.swf +0 -0
  502. data/resources/charts/charts_library/cls3.swf +0 -0
  503. data/resources/charts/charts_library/clst.swf +0 -0
  504. data/resources/charts/charts_library/cnno.swf +0 -0
  505. data/resources/charts/charts_library/dono.swf +0 -0
  506. data/resources/charts/charts_library/lnno.swf +0 -0
  507. data/resources/charts/charts_library/mxno.swf +0 -0
  508. data/resources/charts/charts_library/pi3d.swf +0 -0
  509. data/resources/charts/charts_library/piim.swf +0 -0
  510. data/resources/charts/charts_library/pino.swf +0 -0
  511. data/resources/charts/charts_library/pono.swf +0 -0
  512. data/resources/charts/charts_library/scno.swf +0 -0
  513. data/resources/charts/full_screen.fla +0 -0
  514. data/resources/charts/full_screen.swf +0 -0
  515. data/resources/charts/scripts/output_jpg.php +23 -0
  516. data/resources/charts/sliders/black.swf +0 -0
  517. data/resources/charts/sliders/preview_handle_1.swf +0 -0
  518. data/resources/charts/sliders/preview_handle_2.swf +0 -0
  519. data/resources/charts/themes/readme.txt +13 -0
  520. data/{gauges → resources/gauges}/designs/circle.yml +0 -0
  521. data/{gauges → resources/gauges}/designs/signal.yml +0 -0
  522. data/{gauges → resources/gauges}/designs/thermo.yml +0 -0
  523. data/{gauges → resources/gauges}/designs/title.yml +0 -0
  524. data/{gauges → resources/gauges}/gauge.swf +0 -0
  525. data/resources/maps/js/Exception.js +45 -0
  526. data/resources/maps/js/FlashProxy.js +72 -0
  527. data/resources/maps/js/FlashSerializer.js +165 -0
  528. data/resources/maps/js/FlashTag.js +111 -0
  529. data/resources/maps/js/JavaScriptFlashGateway.js +455 -0
  530. data/resources/maps/js/JavaScriptFlashGateway.swf +0 -0
  531. data/resources/maps/map_library/australia.swf +0 -0
  532. data/resources/maps/map_library/belgium.swf +0 -0
  533. data/resources/maps/map_library/brazil.swf +0 -0
  534. data/resources/maps/map_library/canada.swf +0 -0
  535. data/resources/maps/map_library/europe.swf +0 -0
  536. data/resources/maps/map_library/france.swf +0 -0
  537. data/resources/maps/map_library/germany.swf +0 -0
  538. data/resources/maps/map_library/italy.swf +0 -0
  539. data/resources/maps/map_library/mexico.swf +0 -0
  540. data/resources/maps/map_library/sweden.swf +0 -0
  541. data/resources/maps/map_library/uk_ireland.swf +0 -0
  542. data/resources/maps/map_library/us.swf +0 -0
  543. data/resources/maps/map_library/us_canada.swf +0 -0
  544. data/resources/maps/map_library/world.swf +0 -0
  545. data/resources/maps/themes/readme.txt +13 -0
  546. data/spec/charts/base_spec.rb +7 -6
  547. data/spec/charts/chart_type_spec.rb +11 -4
  548. data/spec/{components → charts/support}/area_spec.rb +8 -8
  549. data/spec/charts/support/chart_pref_spec.rb +36 -0
  550. data/spec/charts/support/draw_spec.rb +41 -0
  551. data/spec/{components → charts/support}/filter_spec.rb +6 -6
  552. data/spec/{components → charts/support}/link_spec.rb +6 -6
  553. data/spec/{components → charts/support}/series.rb +4 -4
  554. data/spec/{components → charts/support}/series_color_spec.rb +4 -4
  555. data/spec/{components → charts/support}/series_explode.rb +4 -4
  556. data/spec/{components → charts/support}/series_explode_spec.rb +4 -4
  557. data/spec/core_ext/string_spec.rb +40 -0
  558. data/spec/gauges/base_spec.rb +1 -1
  559. data/spec/html_helpers/base_spec.rb +50 -0
  560. data/spec/html_helpers/charts_spec.rb +23 -0
  561. data/spec/html_helpers/gauges_spec.rb +16 -0
  562. data/spec/html_helpers/maps_spec.rb +20 -0
  563. data/spec/maps/base_spec.rb +82 -0
  564. data/spec/maps/support/default_color_spec.rb +29 -0
  565. data/spec/maps/support/heat_range_spec.rb +29 -0
  566. data/spec/maps/us_spec.rb +12 -0
  567. data/spec/maps/world_spec.rb +18 -0
  568. data/spec/spec_helper.rb +5 -4
  569. data/spec/themes/maps/base_map.yml +81 -0
  570. data/spec/themes/maps/us_map.yml +6 -0
  571. data/spec/themes/maps/world_map.yml +6 -0
  572. data/spec/themes/maps/world_ov_map.yml +6 -0
  573. data/spec/{helpers/base_helper_spec.rb → yaml_helpers/charts_spec.rb} +10 -13
  574. data/spec/yaml_helpers/gauges_spec.rb +15 -0
  575. data/spec/ziya_helper_spec.rb +118 -116
  576. data/tasks/doc.rake +12 -7
  577. data/tasks/gem.rake +1 -1
  578. data/tasks/setup.rb +1 -1
  579. data/ziya.gemspec +40 -0
  580. metadata +582 -94
  581. data/charts/charts.swf +0 -0
  582. data/charts/charts_library/ar3d.swf +0 -0
  583. data/charts/charts_library/arno.swf +0 -0
  584. data/charts/charts_library/ars3.swf +0 -0
  585. data/charts/charts_library/arst.swf +0 -0
  586. data/charts/charts_library/brfl.swf +0 -0
  587. data/charts/charts_library/brno.swf +0 -0
  588. data/charts/charts_library/brst.swf +0 -0
  589. data/charts/charts_library/buno.swf +0 -0
  590. data/charts/charts_library/cl3d.swf +0 -0
  591. data/charts/charts_library/clfl.swf +0 -0
  592. data/charts/charts_library/clim.swf +0 -0
  593. data/charts/charts_library/clno.swf +0 -0
  594. data/charts/charts_library/clp3.swf +0 -0
  595. data/charts/charts_library/cls3.swf +0 -0
  596. data/charts/charts_library/clst.swf +0 -0
  597. data/charts/charts_library/cnno.swf +0 -0
  598. data/charts/charts_library/dono.swf +0 -0
  599. data/charts/charts_library/lnno.swf +0 -0
  600. data/charts/charts_library/mxno.swf +0 -0
  601. data/charts/charts_library/pi3d.swf +0 -0
  602. data/charts/charts_library/piim.swf +0 -0
  603. data/charts/charts_library/pino.swf +0 -0
  604. data/charts/charts_library/pono.swf +0 -0
  605. data/charts/charts_library/scno.swf +0 -0
  606. data/charts/ziya.js +0 -66
  607. data/lib/ziya/components/draw.rb +0 -47
  608. data/lib/ziya/helpers/base_helper.rb +0 -91
  609. data/lib/ziya/utils/text.rb +0 -39
  610. data/lib/ziya/ziya_helper.rb +0 -354
  611. data/spec/components/draw_spec.rb +0 -32
  612. data/spec/utils/text_spec.rb +0 -33
@@ -0,0 +1,90 @@
1
+ # Generates necessary html flash tag to support ZiYa
2
+ #
3
+ # TODO -- Rewrite to use content tag block instead...
4
+ #
5
+ # Author: Fernand Galiana
6
+
7
+ module Ziya::HtmlHelpers::Gauges
8
+ include Ziya::HtmlHelpers::Base
9
+
10
+ # generates necessary html tags to display a gauge.
11
+ def ziya_gauge( url, gauge_options={} )
12
+ options = default_gauge_options.merge( gauge_options )
13
+ _ziya_gauge( url, gauges_swf, options )
14
+ end
15
+
16
+ # =========================================================================
17
+ # private
18
+
19
+ # Const accessors...
20
+ def gauges_swf() "%s/gauge.swf?xml_source=%s"; end
21
+ def gauge_path() "/gauges"; end
22
+ def class_id() "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" end
23
+ def codebase() "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0"; end
24
+
25
+ def default_gauge_options
26
+ { :width => "200",
27
+ :height => "200",
28
+ :align => "middle",
29
+ :scale => "noscale",
30
+ :script_access => "sameDomain",
31
+ :salign => "",
32
+ :class => "",
33
+ :class_id => "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
34
+ :id => "ziya_gauge",
35
+ :swf_path => gauge_path,
36
+ :use_cache => false,
37
+ :timeout => 30,
38
+ :retry => 2,
39
+ :use_stage => false }
40
+ end
41
+
42
+ def _ziya_gauge( url, swf_path, options )
43
+ # Setup options for opaque mode
44
+ setup_wmode( options )
45
+
46
+ # setup width and height
47
+ setup_movie_size( options )
48
+
49
+ color_param = tag( 'param', {:name => 'bgcolor', :value => options[:bgcolor]}, true )
50
+ color_param += tag( 'param', {:name => "wmode", :value => options[:wmode]}, true )
51
+
52
+ xml_swf_path = swf_path % [options[:swf_path], url]
53
+ xml_swf_path << "&amp;timestamp=#{Time.now.to_i}" if options[:use_cache] == true
54
+ xml_swf_path << "&amp;timeout=#{options[:timeout]}&amp;retry=#{options[:retry]}" if options[:timeout]
55
+ xml_swf_path << "&amp;stage_width=#{options[:width]}&amp;stage_height=#{options[:height]}" if options[:use_stage] == true
56
+ tags = <<-TAGS
57
+ <object codebase="#{codebase}" classid="#{options[:class_id]}" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
58
+ <param name="scale" value="noscale"/>
59
+ <param name="align" value="#{options[:align]}"/>
60
+ <param name="bgcolor" value="#{options[:bgcolor]}"/>
61
+ <param name="wmode" value="#{options[:wmode]}"/>
62
+ <param name="movie" value="#{xml_swf_path}"/>
63
+ <param name="menu" value="true"/>
64
+ <param name="allowFullScreen" value="true"/>
65
+ <param name="allowScriptAccess" value="#{options[:script_access]}"/>
66
+ <param name="quality" value="high"/>
67
+ <param name="play" value="true"/>
68
+ <param name="devicefont" value="false"/>
69
+ <embed scale="noscale"
70
+ allowfullscreen="true"
71
+ allowscriptaccess="#{options[:script_access]}"
72
+ bgcolor="#{options[:bgcolor]}"
73
+ devicefont="false"
74
+ src="#{xml_swf_path}"
75
+ menu="true"
76
+ name="#{options[:id]}"
77
+ play="true"
78
+ pluginspage="#{plugin_url}"
79
+ quality="high"
80
+ salign="#{options[:salign]}"
81
+ src="#{xml_swf_path}"
82
+ type="#{mime}"
83
+ wmode="#{options[:wmode]}"
84
+ salign="#{options[:salign]}"
85
+ height="#{options[:height]}"
86
+ width="#{options[:width]}">
87
+ </object>
88
+ TAGS
89
+ end
90
+ end
@@ -0,0 +1,74 @@
1
+ module Ziya::HtmlHelpers::Maps
2
+ include Ziya::HtmlHelpers::Base
3
+
4
+ def maps_swf_base() "/maps"; end
5
+ def maps_swf() "#{maps_swf_base}?data_file=%s"; end
6
+
7
+ # default options
8
+ def default_map_options
9
+ {
10
+ :width => "400",
11
+ :height => "300",
12
+ :map_type => :world,
13
+ :id => "ziya_map",
14
+ :code_base => "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0",
15
+ :align => "top",
16
+ :quality => "high",
17
+ :wmode => "opaque",
18
+ :class_id => "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
19
+ :swf_path => "/maps/map_library",
20
+ :use_cache => false
21
+ }
22
+ end
23
+
24
+ # generates swf path
25
+ def gen_sw_path( path, swf_file, url )
26
+ path_directive = "#{path}/%s?data_file=%s"
27
+ path_directive % [swf_file, escape_url( url )]
28
+ end
29
+
30
+ # generates necessary tags for map support
31
+ def ziya_map( url, map_options={} )
32
+ options = default_map_options.merge( map_options )
33
+ _ziya_map( url, "#{options[:map_type]}.swf", options )
34
+ end
35
+
36
+ # generates actual html tags
37
+ def _ziya_map( url, swf_file, options )
38
+ # Setup options for opaque mode
39
+ setup_wmode( options )
40
+
41
+ # setup width and height
42
+ setup_movie_size( options )
43
+
44
+ color_param = tag( 'param', {:name => 'bgcolor', :value => options[:bgcolor]}, true )
45
+ color_param += tag( 'param', {:name => "wmode", :value => options[:wmode]}, true )
46
+
47
+ xml_swf_path = gen_sw_path( options[:swf_path], swf_file, url )
48
+ xml_swf_path << "&amp;timestamp=#{Time.now.to_i}" if options[:cache]
49
+
50
+ tags = <<-TAGS
51
+ <object codebase="#{options[:codebase]}" classid="#{options[:class_id]}" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
52
+ <param name="align" value="#{options[:align]}"/>
53
+ <param name="Flashvars" value="lcId=#{options[:id]}"/>
54
+ <param name="bgcolor" value="#{options[:bgcolor]}"/>
55
+ <param name="wmode" value="#{options[:wmode]}"/>
56
+ <param name="movie" value="#{xml_swf_path}"/>
57
+ <param name="quality" value="#{options[:quality]}"/>
58
+ <embed scale="noscale"
59
+ flashvars = "lcId=#{options[:id]}"
60
+ bgcolor = "#{options[:bgcolor]}"
61
+ src = "#{xml_swf_path}"
62
+ name = "#{options[:id]}"
63
+ pluginspage = "#{plugin_url}"
64
+ quality = "high"
65
+ type = "#{mime}"
66
+ wmode = "#{options[:wmode]}"
67
+ align = "#{options[:align]}"
68
+ height = "#{options[:height]}"
69
+ width = "#{options[:width]}"/>
70
+ </object>
71
+ TAGS
72
+
73
+ end
74
+ end
@@ -0,0 +1,9 @@
1
+ require 'ziya/maps/base'
2
+
3
+ module Ziya::Maps
4
+ class Australia < Ziya::Maps::Base
5
+ def initialize( id=nil )
6
+ super( :australia, id )
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,409 @@
1
+ # -----------------------------------------------------------------------------
2
+ # == Ziya::Maps::Base
3
+ #
4
+ # Maps mother ship
5
+ #
6
+ # Author:: Fernand Galiana
7
+ # Date:: Jan 01 2009
8
+ # -----------------------------------------------------------------------------
9
+ require 'ziya/yaml_helpers/maps'
10
+ require 'ziya/html_helpers/maps'
11
+
12
+ module Ziya::Maps
13
+ class Base
14
+ include Ziya::YamlHelpers::Maps, Ziya::HtmlHelpers::Maps
15
+
16
+ # =========================================================================
17
+ protected
18
+ def self.map_types
19
+ @map_types ||= [
20
+ :australia,
21
+ :belgium,
22
+ :brazil,
23
+ :canada,
24
+ :europe,
25
+ :france,
26
+ :germany,
27
+ :italy,
28
+ :mexico,
29
+ :sweden,
30
+ :uk_ireland,
31
+ :us,
32
+ :us_canada,
33
+ :world ]
34
+ end
35
+
36
+ # defines the various map components
37
+ def self.declare_components # :nodoc:
38
+ @components =
39
+ [
40
+ :arc,
41
+ :arc_color,
42
+ :arc_range,
43
+ :background_color,
44
+ :default_color,
45
+ :default_point,
46
+ :first_zoom,
47
+ :hover,
48
+ :heat_range,
49
+ :line,
50
+ :line_color,
51
+ :line_range,
52
+ :outline_color,
53
+ :point,
54
+ :point_range,
55
+ :ranges,
56
+ :range,
57
+ :region,
58
+ :scale_points,
59
+ :show_name,
60
+ :state,
61
+ :state_info_icon,
62
+ :zoom_mode,
63
+ :zoom_out_button,
64
+ :zoom_out_scale
65
+ ]
66
+ @components.each { |a| attr_accessor a }
67
+ end
68
+ declare_components
69
+
70
+
71
+ # =========================================================================
72
+ public
73
+
74
+ attr_accessor :id, :theme, :options # :nodoc:
75
+ attr_reader :map_type # :nodoc:
76
+
77
+ # create a new map.
78
+ # <tt>chart_id</tt> -- the name of the map stylesheet.
79
+ # NOTE: If map_id is specified the framework will attempt to load the map styles
80
+ # from public/maps/themes/theme_name/map_id.yml
81
+ def initialize( map_type, map_id=nil ) # :nodoc:
82
+ raise "Invalid map type '#{map_type.inspect}'" unless Ziya::Maps::Base.map_types.include?( map_type )
83
+ @id = map_id
84
+ @options = @series = @points = @arcs = @lines = {}
85
+ @line_colors = @range_colors = @point_colors = @arc_colors = {}
86
+ @theme = default_theme
87
+ @map_type = map_type
88
+ initialize_components
89
+ load_helpers( Ziya.helpers_dir ) if Ziya.helpers_dir
90
+ end
91
+
92
+ # class component accessor...
93
+ def self.components # :nodoc:
94
+ @components
95
+ end
96
+
97
+ # default ZiYa theme
98
+ def default_theme # :nodoc:
99
+ File.join( Ziya.map_themes_dir, %w[default] )
100
+ end
101
+
102
+ # load up ERB style helpers
103
+ def load_helpers( helper_dir ) # :nodoc:
104
+ Dir.foreach(helper_dir) do |helper_file|
105
+ next unless helper_file =~ /^([a-z][a-z_]*_helper).rb$/
106
+ Ziya.logger.debug( ">>> ZiYa loading custom helper `#{$1}" )
107
+ # check rails env for autoloader ?
108
+ if defined?(RAILS_ROOT)
109
+ require_dependency File.join(helper_dir, $1)
110
+ else
111
+ require File.join(helper_dir, $1)
112
+ end
113
+ helper_module_name = "Ziya::" + $1.gsub(/(^|_)(.)/) { $2.upcase }
114
+ # helper_module_name = $1.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
115
+ # if Ziya::Helpers.const_defined?(helper_module_name)
116
+ Ziya.logger.debug( "Include module #{helper_module_name}")
117
+ Ziya::Maps::Base.class_eval("include #{helper_module_name}")
118
+ # end
119
+ end
120
+ end
121
+
122
+ # Add chart components to a given chart.
123
+ #
124
+ # The <tt>args</tt> must contain certain keys for the chart
125
+ # to be displayed correctly.
126
+ #
127
+ # === Directives
128
+ # * <tt>:series</tt> -- Specifies the data points for the map. This must be a hash
129
+ # of region, data pairs. Where the data is also a hash of attributes such as
130
+ # :name, :data, :hover, :url and :target.
131
+ # * <tt>:range_colors</tt> -- Specifies the map of ranges of data values from the
132
+ # series to a color on the map. The range may be an exact value such as 10 or an
133
+ # actual range in the form of 1 - 10. The color must be an hexadecimal value of the
134
+ # form 'ff00ff'.
135
+ # * <tt>:point_colors</tt> -- Specifies a map of valid color ranges to color the points
136
+ # on the map. Valid key/value pairs are a number or range for the key and an
137
+ # associated color.
138
+ # * <tt>:arc_colors</tt> -- Specifies a map of valid color ranges to color the arcs
139
+ # on the map. Valid key/value pairs are a number or range for the key and an
140
+ # associated color.
141
+ # * <tt>:line_colors</tt> -- Specifies a map of valid color ranges to color the lines
142
+ # on the map. Valid key/value pairs are a number or range for the key and an
143
+ # associated color.
144
+ # * <tt>:lines</tt> -- Specifies a map of lines to plot on the map. These are key/value pairs.
145
+ # The value represent the name of the line to be displayed. The value is a hash of attributes
146
+ # as follows: :start, the geocode location of the point, :stop, the geocode location of the arc to end at
147
+ # :stroke, the thickness of the line and :data for the range value of the arc.
148
+ # * <tt>:arcs</tt> -- Specifies a map of arcs to plot on the map. These are key/value pairs.
149
+ # The value represent the name of the arc to be displayed. The value is a hash of attributes
150
+ # as follows: :start, the geocode location of the point, :stop, the geocode location of the arc to end at
151
+ # and :data for the range value of the arc.
152
+ # * <tt>:points</tt> -- Specifies a map of points to plot on the map. These are key/value pairs.
153
+ # The value represent the name of the point to be displayed. The value is a hash of attributes
154
+ # as follows: :loc for the geocode location of the point and :data for the range value of the point.
155
+ # * <tt>:theme</tt> -- Specify the use of a given named theme. The named theme must
156
+ # reside in a directory named equaly under your application public/charts/themes.
157
+ #
158
+ # === Examples
159
+ # Colorize colorado and california on a US map
160
+ # my_map.add( :series, { :CO => { :name => "Colorado", :data => 1 }, :CA => { :name => "California", :data => 2 } )
161
+ def add( *args )
162
+ # TODO Validation categories = series, series = labels, etc...
163
+ directive = args.shift
164
+ case directive
165
+ when :series
166
+ if args.first.is_a?( Hash )
167
+ points = args.shift || {}
168
+ raise ArgumentError, "Must specify an hash of data points" if points.empty?
169
+ @series = points
170
+ else
171
+ raise ArgumentError, "Must specify an hash of data points"
172
+ end
173
+ when :range_colors
174
+ @range_colors = args.shift || {}
175
+ raise ArgumentError, "You must specify a hash of data range/color pairs" if @range_colors.empty?
176
+ when :lines
177
+ @lines = args.shift || {}
178
+ raise ArgumentError, "You must specify a hash of lines attributes" if @lines.empty?
179
+ when :line_colors
180
+ @line_colors = args.shift || {}
181
+ raise ArgumentError, "You must specify a hash of line range/color pairs" if @line_colors.empty?
182
+ when :arcs
183
+ @arcs = args.shift || {}
184
+ raise ArgumentError, "You must specify a hash of arcs attributes" if @arcs.empty?
185
+ when :arc_colors
186
+ @arc_colors = args.shift || {}
187
+ raise ArgumentError, "You must specify a hash of arc range/color pairs" if @arc_colors.empty?
188
+ when :points
189
+ @points = args.shift || {}
190
+ raise ArgumentError, "You must specify a hash of points attributes" if @points.empty?
191
+ when :point_colors
192
+ @point_colors = args.shift || {}
193
+ raise ArgumentError, "You must specify a hash of point range/color pairs" if @point_colors.empty?
194
+ when :user_data
195
+ key = args.first.is_a?(Symbol) ? args.shift : ""
196
+ raise ArgumentError, "Must specify a key" if key.to_s.empty?
197
+ value = args.shift
198
+ # raise ArgumentError, "Must specify a value" if value.empty?
199
+ @options[key] = value
200
+ when :theme
201
+ theme = args.first.is_a?(String) ? args.shift : ""
202
+ raise ArgumentError, "Must specify a theme name" if theme.to_s.empty?
203
+ @theme = "#{Ziya.map_themes_dir}/#{theme}"
204
+ else raise ArgumentError, "Invalid directive must be one of " +
205
+ ":series, :theme, :user_data"
206
+ end
207
+ end
208
+
209
+ # spews the map specification to a string
210
+ def to_s
211
+ @xml = Builder::XmlMarkup.new
212
+ # Forces utf8 encoding on xml stream
213
+ @xml.instruct! :xml, :version => "1.0", :encoding => "UTF-8"
214
+ if map_type == :us
215
+ @xml.us_states do
216
+ setup_lnf
217
+ setup_series
218
+ end
219
+ else
220
+ @xml.countrydata do
221
+ setup_lnf
222
+ setup_series
223
+ end
224
+ end
225
+ @xml.to_s.gsub( /<to_s\/>/, '' )
226
+ end
227
+ # dumps the map design to xml for client side consumption
228
+ alias to_xml to_s
229
+
230
+ # =========================================================================
231
+ private
232
+
233
+ # inflate object state based on object hierarchy
234
+ def setup_state( state )
235
+ override = self.class.name == state.class.name
236
+ Base.components.each do |comp|
237
+ instance_eval "#{comp}.merge( state.#{comp}, override ) unless state.#{comp}.nil?"
238
+ end
239
+ end
240
+
241
+ # load yaml file associated with class if any
242
+ def inflate( clazz, theme, instance=nil )
243
+ class_name = clazz.to_s.gsub( /Ziya::Maps/, '' ).underscore.gsub( /\//, '' )
244
+ class_name += '_map' unless class_name.match( /.?_map$/ )
245
+ begin
246
+ file_name = "#{theme}/#{class_name}"
247
+ file_name = "#{theme}/#{instance}" unless instance.nil?
248
+ Ziya.logger.debug ">>> Ziya attempt to load map stylesheet file '#{file_name}"
249
+ yml = IO.read( "#{file_name}.yml" )
250
+ processed = erb_render( yml )
251
+ # puts ">>> Processed yaml", processed
252
+ load = YAML::load( processed )
253
+ Ziya.logger.debug ">>> ZiYa [loading map styles] -- #{file_name}.yml"
254
+ # puts load.inspect
255
+ return load
256
+ rescue SystemCallError => boom
257
+ Ziya.logger.debug "ERROR #{boom}"
258
+ ; # ignore if no style file...
259
+ rescue => bang
260
+ Ziya.logger.debug ">>> ZiYa -- Error encountered loading map file `#{file_name} -- #{bang}"
261
+ bang.backtrace.each { |l| Ziya.logger.debug( l ) }
262
+ end
263
+ nil
264
+ end
265
+
266
+ # parse erb template if any
267
+ def erb_render(fixture_content)
268
+ b = binding
269
+ ERB.new(fixture_content).result b
270
+ end
271
+
272
+ # lay down the map data points and color ranges
273
+ def setup_series
274
+ @series.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |s|
275
+ hash = @series[s]
276
+ @xml.state( :id => s ) do |xml|
277
+ hash.keys.sort{ |a,b| a.to_s <=> b.to_s}.each do |k|
278
+ self.class.module_eval "xml.#{k}( '#{hash[k]}' )"
279
+ end
280
+ end
281
+ end
282
+
283
+ # lay down points if any?
284
+ @points.keys.sort.each do |name|
285
+ @xml.state( :id => "point" ) do |xml|
286
+ xml.name( name )
287
+ @points[name].keys.sort { |a,b| a.to_s <=> b.to_s }.each do |attr|
288
+ self.class.module_eval "xml.#{attr}( '#{@points[name][attr]}' )"
289
+ end
290
+ end
291
+ end
292
+
293
+ # lay down points if any?
294
+ @lines.keys.sort.each do |name|
295
+ @xml.state( :id => "line" ) do |xml|
296
+ xml.name( name )
297
+ @lines[name].keys.sort { |a,b| a.to_s <=> b.to_s }.each do |attr|
298
+ self.class.module_eval "xml.#{attr}( '#{@lines[name][attr]}' )"
299
+ end
300
+ end
301
+ end
302
+
303
+ @arcs.keys.sort.each do |name|
304
+ @xml.state( :id => "arc" ) do |xml|
305
+ xml.name( name )
306
+ @arcs[name].keys.sort { |a,b| a.to_s <=> b.to_s }.each do |attr|
307
+ self.class.module_eval "xml.#{attr}( '#{@arcs[name][attr]}' )"
308
+ end
309
+ end
310
+ end
311
+
312
+ # lay down range colors if any
313
+ unless @range_colors.empty?
314
+ @range_colors.each_pair do |range, color|
315
+ @xml.state( :id => 'range' ) do
316
+ @xml.data( range )
317
+ @xml.color( color )
318
+ end
319
+ end
320
+ end
321
+
322
+ # lay down point range colors if any
323
+ unless @point_colors.empty?
324
+ @point_colors.each_pair do |range, color|
325
+ @xml.state( :id => 'point_range' ) do
326
+ @xml.data( range )
327
+ @xml.color( color )
328
+ end
329
+ end
330
+ end
331
+
332
+ # lay down line range colors if any
333
+ unless @line_colors.empty?
334
+ @line_colors.each_pair do |range, color|
335
+ @xml.state( :id => 'line_range' ) do
336
+ @xml.data( range )
337
+ @xml.color( color )
338
+ end
339
+ end
340
+ end
341
+
342
+ # lay down arc range colors if any
343
+ unless @arc_colors.empty?
344
+ @arc_colors.each_pair do |range, color|
345
+ @xml.state( :id => 'arc_range' ) do
346
+ @xml.data( range )
347
+ @xml.color( color )
348
+ end
349
+ end
350
+ end
351
+
352
+ end
353
+
354
+ # walk up class hierarchy to find chart inheritance classes
355
+ def ancestors
356
+ ancestors = self.class.ancestors.reverse
357
+ allow = false
358
+ ancestors.map do |k|
359
+ allow = true if k == Ziya::Maps::Base
360
+ k if allow
361
+ end.compact!
362
+ end
363
+
364
+ # load up look and feel data
365
+ def load_lnf
366
+ unless @partial
367
+ ancestors.each do |super_class|
368
+ # Load class instance prefs
369
+ if ( super_class == self.class )
370
+ o = inflate( super_class, theme )
371
+ setup_state( o ) unless o.nil?
372
+ # Now load instance prefs if any
373
+ unless id.nil?
374
+ o = inflate( super_class, theme, id )
375
+ setup_state( o ) unless o.nil?
376
+ end
377
+ # Otherwise load parent prefs...
378
+ else
379
+ o = inflate( super_class, theme, nil )
380
+ setup_state( o ) unless o.nil?
381
+ end
382
+ end
383
+ end
384
+ # Additional styles specified ? if so load them
385
+ unless @options[:styles].nil?
386
+ o = YAML::load( erb_render( @options[:styles] ) )
387
+ setup_state( o ) unless o.nil?
388
+ end
389
+ end
390
+
391
+ # generates xml for look and feel data
392
+ def setup_lnf
393
+ load_lnf
394
+ Base.components.sort { |a,b| a.to_s <=> b.to_s }.each do |comp|
395
+ next unless self.send( comp ).configured?
396
+ instance_eval "#{comp}.flatten( @xml )"
397
+ end
398
+ end
399
+
400
+ # load up the allowable map components
401
+ def initialize_components
402
+ # Setup instance vars
403
+ Base.components.each do |comp|
404
+ instance_var = lambda { |v| self.instance_eval{ instance_variable_set "@#{comp}", v } }
405
+ instance_var.call(Ziya::Maps::Support.const_get( comp.to_s.classify ).new)
406
+ end
407
+ end
408
+ end
409
+ end