rubyvis 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (461) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +8 -1
  3. data/Manifest.txt +100 -416
  4. data/README.txt +5 -2
  5. data/examples/barley/barley.rb +79 -0
  6. data/examples/crimea/crimea.rb +37 -0
  7. data/examples/crimea/crimea_line.rb +47 -0
  8. data/examples/second.rb +2 -2
  9. data/examples/third.rb +16 -0
  10. data/lib/rubyvis.rb +2 -1
  11. data/lib/rubyvis/color/color.rb +170 -169
  12. data/lib/rubyvis/color/colors.rb +4 -4
  13. data/lib/rubyvis/color/ramp.rb +1 -0
  14. data/lib/rubyvis/format.rb +2 -2
  15. data/lib/rubyvis/format/date.rb +9 -2
  16. data/lib/rubyvis/format/number.rb +3 -3
  17. data/lib/rubyvis/internals.rb +13 -13
  18. data/lib/rubyvis/javascript_behaviour.rb +3 -3
  19. data/lib/rubyvis/label.rb +1 -0
  20. data/lib/rubyvis/mark.rb +178 -169
  21. data/lib/rubyvis/mark/anchor.rb +4 -4
  22. data/lib/rubyvis/mark/area.rb +93 -5
  23. data/lib/rubyvis/mark/bar.rb +1 -1
  24. data/lib/rubyvis/mark/label.rb +2 -2
  25. data/lib/rubyvis/mark/line.rb +11 -5
  26. data/lib/rubyvis/mark/panel.rb +13 -11
  27. data/lib/rubyvis/mark/rule.rb +2 -2
  28. data/lib/rubyvis/property.rb +3 -2
  29. data/lib/rubyvis/scale.rb +4 -4
  30. data/lib/rubyvis/scale/linear.rb +2 -2
  31. data/lib/rubyvis/scale/ordinal.rb +41 -41
  32. data/lib/rubyvis/scale/quantitative.rb +212 -200
  33. data/lib/rubyvis/scene/svg_bar.rb +21 -21
  34. data/lib/rubyvis/scene/svg_label.rb +34 -34
  35. data/lib/rubyvis/scene/svg_line.rb +185 -0
  36. data/lib/rubyvis/scene/svg_panel.rb +36 -30
  37. data/lib/rubyvis/scene/svg_rule.rb +18 -19
  38. data/lib/rubyvis/scene/svg_scene.rb +33 -30
  39. data/lib/rubyvis/sceneelement.rb +5 -1
  40. data/lib/rubyvis/transform.rb +2 -2
  41. data/spec/mark_spec.rb +6 -6
  42. data/spec/scale_linear_datetime_spec.rb +52 -0
  43. data/spec/scale_linear_spec.rb +0 -10
  44. data/vendor/{protovis-r3.3.js → protovis/protovis-r3.3.js} +0 -0
  45. data/vendor/{src → protovis/src}/behavior/Behavior.js +0 -0
  46. data/vendor/{src → protovis/src}/behavior/Drag.js +0 -0
  47. data/vendor/{src → protovis/src}/behavior/Pan.js +0 -0
  48. data/vendor/{src → protovis/src}/behavior/Point.js +0 -0
  49. data/vendor/{src → protovis/src}/behavior/Resize.js +0 -0
  50. data/vendor/{src → protovis/src}/behavior/Select.js +0 -0
  51. data/vendor/{src → protovis/src}/behavior/Zoom.js +0 -0
  52. data/vendor/{src → protovis/src}/color/Color.js +0 -0
  53. data/vendor/{src → protovis/src}/color/Colors.js +0 -0
  54. data/vendor/{src → protovis/src}/color/Ramp.js +0 -0
  55. data/vendor/{src → protovis/src}/data/Arrays.js +0 -0
  56. data/vendor/{src → protovis/src}/data/Dom.js +0 -0
  57. data/vendor/{src → protovis/src}/data/Flatten.js +0 -0
  58. data/vendor/{src → protovis/src}/data/Histogram.js +0 -0
  59. data/vendor/{src → protovis/src}/data/LinearScale.js +0 -0
  60. data/vendor/{src → protovis/src}/data/LogScale.js +0 -0
  61. data/vendor/{src → protovis/src}/data/Nest.js +0 -0
  62. data/vendor/{src → protovis/src}/data/Numbers.js +0 -0
  63. data/vendor/{src → protovis/src}/data/Objects.js +0 -0
  64. data/vendor/{src → protovis/src}/data/OrdinalScale.js +0 -0
  65. data/vendor/{src → protovis/src}/data/QuantileScale.js +0 -0
  66. data/vendor/{src → protovis/src}/data/QuantitativeScale.js +0 -0
  67. data/vendor/{src → protovis/src}/data/RootScale.js +0 -0
  68. data/vendor/{src → protovis/src}/data/Scale.js +0 -0
  69. data/vendor/{src → protovis/src}/data/Transform.js +0 -0
  70. data/vendor/{src → protovis/src}/data/Tree.js +0 -0
  71. data/vendor/{src → protovis/src}/data/Vector.js +0 -0
  72. data/vendor/{src → protovis/src}/geo/Geo.js +0 -0
  73. data/vendor/{src → protovis/src}/geo/GeoScale.js +0 -0
  74. data/vendor/{src → protovis/src}/geo/LatLng.js +0 -0
  75. data/vendor/{src → protovis/src}/geo/Projection.js +0 -0
  76. data/vendor/{src → protovis/src}/geo/Projections.js +0 -0
  77. data/vendor/{src → protovis/src}/lang/Array.js +0 -0
  78. data/vendor/{src → protovis/src}/lang/init.js +0 -0
  79. data/vendor/{src → protovis/src}/layout/Arc.js +0 -0
  80. data/vendor/{src → protovis/src}/layout/Bullet.js +0 -0
  81. data/vendor/{src → protovis/src}/layout/Cluster.js +0 -0
  82. data/vendor/{src → protovis/src}/layout/Force.js +0 -0
  83. data/vendor/{src → protovis/src}/layout/Grid.js +0 -0
  84. data/vendor/{src → protovis/src}/layout/Hierarchy.js +0 -0
  85. data/vendor/{src → protovis/src}/layout/Horizon.js +0 -0
  86. data/vendor/{src → protovis/src}/layout/Indent.js +0 -0
  87. data/vendor/{src → protovis/src}/layout/Layout.js +0 -0
  88. data/vendor/{src → protovis/src}/layout/Matrix.js +0 -0
  89. data/vendor/{src → protovis/src}/layout/Network.js +0 -0
  90. data/vendor/{src → protovis/src}/layout/Pack.js +0 -0
  91. data/vendor/{src → protovis/src}/layout/Partition.js +0 -0
  92. data/vendor/{src → protovis/src}/layout/Rollup.js +0 -0
  93. data/vendor/{src → protovis/src}/layout/Stack.js +0 -0
  94. data/vendor/{src → protovis/src}/layout/Tree.js +0 -0
  95. data/vendor/{src → protovis/src}/layout/Treemap.js +0 -0
  96. data/vendor/{src → protovis/src}/mark/Anchor.js +0 -0
  97. data/vendor/{src → protovis/src}/mark/Area.js +0 -0
  98. data/vendor/{src → protovis/src}/mark/Bar.js +0 -0
  99. data/vendor/{src → protovis/src}/mark/Dot.js +0 -0
  100. data/vendor/{src → protovis/src}/mark/Ease.js +0 -0
  101. data/vendor/{src → protovis/src}/mark/Image.js +0 -0
  102. data/vendor/{src → protovis/src}/mark/Label.js +0 -0
  103. data/vendor/{src → protovis/src}/mark/Line.js +0 -0
  104. data/vendor/{src → protovis/src}/mark/Mark.js +0 -0
  105. data/vendor/{src → protovis/src}/mark/Panel.js +0 -0
  106. data/vendor/{src → protovis/src}/mark/Rule.js +0 -0
  107. data/vendor/{src → protovis/src}/mark/Transient.js +0 -0
  108. data/vendor/{src → protovis/src}/mark/Transition.js +0 -0
  109. data/vendor/{src → protovis/src}/mark/Wedge.js +0 -0
  110. data/vendor/{src → protovis/src}/physics/BoundConstraint.js +0 -0
  111. data/vendor/{src → protovis/src}/physics/ChargeForce.js +0 -0
  112. data/vendor/{src → protovis/src}/physics/CollisionConstraint.js +0 -0
  113. data/vendor/{src → protovis/src}/physics/Constraint.js +0 -0
  114. data/vendor/{src → protovis/src}/physics/DragForce.js +0 -0
  115. data/vendor/{src → protovis/src}/physics/Force.js +0 -0
  116. data/vendor/{src → protovis/src}/physics/Particle.js +0 -0
  117. data/vendor/{src → protovis/src}/physics/PositionConstraint.js +0 -0
  118. data/vendor/{src → protovis/src}/physics/Quadtree.js +0 -0
  119. data/vendor/{src → protovis/src}/physics/Simulation.js +0 -0
  120. data/vendor/{src → protovis/src}/physics/SpringForce.js +0 -0
  121. data/vendor/{src → protovis/src}/pv-internals.js +0 -0
  122. data/vendor/{src → protovis/src}/pv.js +0 -0
  123. data/vendor/{src → protovis/src}/scene/SvgArea.js +0 -0
  124. data/vendor/{src → protovis/src}/scene/SvgBar.js +0 -0
  125. data/vendor/{src → protovis/src}/scene/SvgCurve.js +0 -0
  126. data/vendor/{src → protovis/src}/scene/SvgDot.js +0 -0
  127. data/vendor/{src → protovis/src}/scene/SvgImage.js +0 -0
  128. data/vendor/{src → protovis/src}/scene/SvgLabel.js +0 -0
  129. data/vendor/{src → protovis/src}/scene/SvgLine.js +0 -0
  130. data/vendor/{src → protovis/src}/scene/SvgPanel.js +0 -0
  131. data/vendor/{src → protovis/src}/scene/SvgRule.js +0 -0
  132. data/vendor/{src → protovis/src}/scene/SvgScene.js +0 -0
  133. data/vendor/{src → protovis/src}/scene/SvgWedge.js +0 -0
  134. data/vendor/{src → protovis/src}/text/DateFormat.js +0 -0
  135. data/vendor/{src → protovis/src}/text/Format.js +0 -0
  136. data/vendor/{src → protovis/src}/text/NumberFormat.js +0 -0
  137. data/vendor/{src → protovis/src}/text/TimeFormat.js +0 -0
  138. metadata +132 -426
  139. metadata.gz.sig +2 -0
  140. data/examples/crimea-line.rb +0 -64
  141. data/vendor/FUTURE +0 -62
  142. data/vendor/Makefile +0 -138
  143. data/vendor/TODO +0 -22
  144. data/vendor/examples/antibiotics/antibiotics-scatter.html +0 -113
  145. data/vendor/examples/antibiotics/antibiotics.html +0 -140
  146. data/vendor/examples/antibiotics/antibiotics.js +0 -20
  147. data/vendor/examples/barley/barley.html +0 -102
  148. data/vendor/examples/barley/barley.js +0 -122
  149. data/vendor/examples/cars/cars.html +0 -90
  150. data/vendor/examples/cars/cars.js +0 -408
  151. data/vendor/examples/clock/clock.html +0 -91
  152. data/vendor/examples/crimea/crimea-grouped-bar.html +0 -65
  153. data/vendor/examples/crimea/crimea-line.html +0 -61
  154. data/vendor/examples/crimea/crimea-stacked-area.html +0 -61
  155. data/vendor/examples/crimea/crimea-stacked-bar.html +0 -60
  156. data/vendor/examples/crimea/crimea.html +0 -100
  157. data/vendor/examples/crimea/crimea.js +0 -33
  158. data/vendor/examples/downloadify/LICENSE.txt +0 -22
  159. data/vendor/examples/downloadify/download.png +0 -0
  160. data/vendor/examples/downloadify/downloadify.html +0 -57
  161. data/vendor/examples/downloadify/downloadify.min.js +0 -3
  162. data/vendor/examples/downloadify/downloadify.swf +0 -0
  163. data/vendor/examples/downloadify/swfobject.js +0 -4
  164. data/vendor/examples/ex.css +0 -17
  165. data/vendor/examples/eyes/eyes.html +0 -53
  166. data/vendor/examples/eyes/matrix.html +0 -44
  167. data/vendor/examples/flowers/flowers.html +0 -109
  168. data/vendor/examples/flowers/flowers.js +0 -154
  169. data/vendor/examples/group-stack/group-stack.html +0 -79
  170. data/vendor/examples/group-stack/headcount.js +0 -23
  171. data/vendor/examples/hotel/hotel.html +0 -76
  172. data/vendor/examples/hotel/hotel.js +0 -245
  173. data/vendor/examples/jobs/jobs.html +0 -71
  174. data/vendor/examples/jobs/jobs.js +0 -1024
  175. data/vendor/examples/jquery-1.4.2.min.js +0 -154
  176. data/vendor/examples/nba/nba.html +0 -83
  177. data/vendor/examples/nba/nba.js +0 -53
  178. data/vendor/examples/nba/nba2.html +0 -82
  179. data/vendor/examples/sankey/gdp2009.js +0 -184
  180. data/vendor/examples/sankey/sankey.html +0 -77
  181. data/vendor/examples/slider/cell.html +0 -112
  182. data/vendor/examples/slider/cell.js +0 -31
  183. data/vendor/examples/slider/horizon.html +0 -85
  184. data/vendor/examples/slider/jquery-ui-1.8rc3.custom.min.js +0 -71
  185. data/vendor/examples/slider/slider.html +0 -50
  186. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  187. data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  188. data/vendor/examples/slider/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  189. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  190. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  191. data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  192. data/vendor/examples/slider/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  193. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  194. data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  195. data/vendor/examples/slider/ui-lightness/images/ui-icons_222222_256x240.png +0 -2
  196. data/vendor/examples/slider/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -2
  197. data/vendor/examples/slider/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -2
  198. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -2
  199. data/vendor/examples/slider/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -2
  200. data/vendor/examples/slider/ui-lightness/jquery-ui-1.8rc3.custom.css +0 -302
  201. data/vendor/examples/tipsy/jquery.tipsy.js +0 -198
  202. data/vendor/examples/tipsy/tipsy-bar.html +0 -65
  203. data/vendor/examples/tipsy/tipsy-line.html +0 -67
  204. data/vendor/examples/tipsy/tipsy.css +0 -12
  205. data/vendor/examples/tipsy/tipsy.gif +0 -0
  206. data/vendor/examples/tipsy/tipsy.js +0 -66
  207. data/vendor/examples/weather/weather.html +0 -86
  208. data/vendor/examples/weather/weather.js +0 -42
  209. data/vendor/examples/wheat/wheat.html +0 -130
  210. data/vendor/examples/wheat/wheat.js +0 -70
  211. data/vendor/lib/google-compiler/COPYING +0 -202
  212. data/vendor/lib/google-compiler/README +0 -224
  213. data/vendor/lib/google-compiler/compiler-20100201.jar +0 -0
  214. data/vendor/protovis-d3.3.js +0 -15726
  215. data/vendor/test1.html +0 -30
  216. data/vendor/tests/behavior/drag-events.html +0 -47
  217. data/vendor/tests/behavior/drag.html +0 -32
  218. data/vendor/tests/behavior/drag2.html +0 -33
  219. data/vendor/tests/behavior/point-area-stacked.html +0 -73
  220. data/vendor/tests/behavior/point-area-stacked2.html +0 -70
  221. data/vendor/tests/behavior/point-area.html +0 -67
  222. data/vendor/tests/behavior/point-bar.html +0 -62
  223. data/vendor/tests/behavior/point-dot.html +0 -60
  224. data/vendor/tests/behavior/point-line.html +0 -62
  225. data/vendor/tests/behavior/point-lines-grid.html +0 -65
  226. data/vendor/tests/behavior/point-lines.html +0 -61
  227. data/vendor/tests/behavior/point-wedge.html +0 -43
  228. data/vendor/tests/behavior/resize.html +0 -69
  229. data/vendor/tests/behavior/select.html +0 -37
  230. data/vendor/tests/bzr.js +0 -62
  231. data/vendor/tests/center.js +0 -13
  232. data/vendor/tests/data/deviation.html +0 -54
  233. data/vendor/tests/data/histogram-discrete.html +0 -50
  234. data/vendor/tests/data/histogram.html +0 -56
  235. data/vendor/tests/data/log-adjusted.html +0 -48
  236. data/vendor/tests/data/log-ceil.html +0 -48
  237. data/vendor/tests/data/log-floor.html +0 -48
  238. data/vendor/tests/data/log-symmetric.html +0 -48
  239. data/vendor/tests/data/log.html +0 -48
  240. data/vendor/tests/data/max-index.html +0 -36
  241. data/vendor/tests/data/max.html +0 -36
  242. data/vendor/tests/data/min-index.html +0 -36
  243. data/vendor/tests/data/min.html +0 -36
  244. data/vendor/tests/data/ordinal-split-banded.html +0 -45
  245. data/vendor/tests/data/ordinal-split-banded2.html +0 -45
  246. data/vendor/tests/data/ordinal-split-flush.html +0 -51
  247. data/vendor/tests/data/ordinal-split.html +0 -51
  248. data/vendor/tests/data/range.html +0 -105
  249. data/vendor/tests/data/scale-date.html +0 -46
  250. data/vendor/tests/data/scale-date2.html +0 -38
  251. data/vendor/tests/data/scale-date3.html +0 -38
  252. data/vendor/tests/data/scale-date4.html +0 -38
  253. data/vendor/tests/data/scale-degenerate.html +0 -143
  254. data/vendor/tests/data/scale-linear.html +0 -59
  255. data/vendor/tests/data/scale-log.html +0 -60
  256. data/vendor/tests/data/scale-log2.html +0 -60
  257. data/vendor/tests/data/scale-log3.html +0 -60
  258. data/vendor/tests/data/scale-log4.html +0 -60
  259. data/vendor/tests/data/scale-log5.html +0 -60
  260. data/vendor/tests/data/scale-log6.html +0 -60
  261. data/vendor/tests/data/scale-quantile.html +0 -47
  262. data/vendor/tests/data/scale-quantile2.html +0 -50
  263. data/vendor/tests/data/scale-quantile3.html +0 -48
  264. data/vendor/tests/data/scale-root.html +0 -60
  265. data/vendor/tests/data/scale-root2.html +0 -39
  266. data/vendor/tests/data/scale-tick-format.html +0 -54
  267. data/vendor/tests/data/scale-ticks.html +0 -45
  268. data/vendor/tests/data/sum.html +0 -42
  269. data/vendor/tests/data/variance.html +0 -42
  270. data/vendor/tests/diamond.js +0 -40
  271. data/vendor/tests/flare-imports.js +0 -222
  272. data/vendor/tests/flare.js +0 -284
  273. data/vendor/tests/geo/countries-hires.js +0 -257
  274. data/vendor/tests/geo/countries-lores.js +0 -197
  275. data/vendor/tests/geo/population.js +0 -250
  276. data/vendor/tests/geo/scale-aitoff.html +0 -58
  277. data/vendor/tests/geo/scale-gall-peters.html +0 -56
  278. data/vendor/tests/geo/scale-hammer.html +0 -58
  279. data/vendor/tests/geo/scale-identity.html +0 -56
  280. data/vendor/tests/geo/scale-mercator.html +0 -56
  281. data/vendor/tests/geo/scale-sinusoidal.html +0 -57
  282. data/vendor/tests/geo/scale-smart-domain.html +0 -58
  283. data/vendor/tests/geo/scale.html +0 -55
  284. data/vendor/tests/geo/scale2.html +0 -40
  285. data/vendor/tests/geo/us-states.js +0 -61
  286. data/vendor/tests/heatmap.js +0 -63
  287. data/vendor/tests/lang/globals.html +0 -41
  288. data/vendor/tests/lang/init.html +0 -31
  289. data/vendor/tests/layers.js +0 -28
  290. data/vendor/tests/layout/arc-directed.html +0 -33
  291. data/vendor/tests/layout/arc-radial.html +0 -36
  292. data/vendor/tests/layout/arc-undirected.html +0 -32
  293. data/vendor/tests/layout/arc.html +0 -33
  294. data/vendor/tests/layout/arc2.html +0 -32
  295. data/vendor/tests/layout/bullet-multiples.html +0 -60
  296. data/vendor/tests/layout/bullet.html +0 -45
  297. data/vendor/tests/layout/bullets.js +0 -37
  298. data/vendor/tests/layout/cluster-fill-group.html +0 -24
  299. data/vendor/tests/layout/cluster-fill.html +0 -28
  300. data/vendor/tests/layout/cluster-partition-radial-fill.html +0 -43
  301. data/vendor/tests/layout/cluster-radial-fill-radius.html +0 -26
  302. data/vendor/tests/layout/cluster-radial-fill.html +0 -29
  303. data/vendor/tests/layout/cluster-radial-group-fill.html +0 -30
  304. data/vendor/tests/layout/cluster-radial-radius.html +0 -30
  305. data/vendor/tests/layout/cluster-radial.html +0 -28
  306. data/vendor/tests/layout/cluster-radial2.html +0 -33
  307. data/vendor/tests/layout/cluster.html +0 -34
  308. data/vendor/tests/layout/cluster2.html +0 -32
  309. data/vendor/tests/layout/force-toggle.html +0 -46
  310. data/vendor/tests/layout/force.html +0 -45
  311. data/vendor/tests/layout/force2.html +0 -58
  312. data/vendor/tests/layout/force3.html +0 -41
  313. data/vendor/tests/layout/force4.html +0 -45
  314. data/vendor/tests/layout/force5.html +0 -53
  315. data/vendor/tests/layout/grid-cols.html +0 -31
  316. data/vendor/tests/layout/grid-heatmap.html +0 -25
  317. data/vendor/tests/layout/grid-rows.html +0 -31
  318. data/vendor/tests/layout/grid.html +0 -34
  319. data/vendor/tests/layout/horizon-color.html +0 -31
  320. data/vendor/tests/layout/horizon.html +0 -31
  321. data/vendor/tests/layout/indent-toggle.html +0 -62
  322. data/vendor/tests/layout/indent.html +0 -25
  323. data/vendor/tests/layout/indent2.html +0 -33
  324. data/vendor/tests/layout/matrix-sort.html +0 -28
  325. data/vendor/tests/layout/matrix.html +0 -35
  326. data/vendor/tests/layout/network.html +0 -43
  327. data/vendor/tests/layout/pack-bubble.html +0 -45
  328. data/vendor/tests/layout/pack.html +0 -26
  329. data/vendor/tests/layout/pack2.html +0 -32
  330. data/vendor/tests/layout/partition-fill.html +0 -27
  331. data/vendor/tests/layout/partition-fill2.html +0 -22
  332. data/vendor/tests/layout/partition-fill3.html +0 -27
  333. data/vendor/tests/layout/partition-radial-fill-radius.html +0 -25
  334. data/vendor/tests/layout/partition-radial-fill.html +0 -26
  335. data/vendor/tests/layout/partition-radial-fill2.html +0 -23
  336. data/vendor/tests/layout/partition-radial-fill3.html +0 -29
  337. data/vendor/tests/layout/partition-radial-radius.html +0 -29
  338. data/vendor/tests/layout/partition-radial.html +0 -30
  339. data/vendor/tests/layout/partition-radial2.html +0 -33
  340. data/vendor/tests/layout/partition.html +0 -33
  341. data/vendor/tests/layout/partition2.html +0 -32
  342. data/vendor/tests/layout/rollup.html +0 -50
  343. data/vendor/tests/layout/stack-empty.html +0 -27
  344. data/vendor/tests/layout/stack-expand.html +0 -41
  345. data/vendor/tests/layout/stack-reverse.html +0 -42
  346. data/vendor/tests/layout/stack-right.html +0 -42
  347. data/vendor/tests/layout/stack-rule.html +0 -61
  348. data/vendor/tests/layout/stack-visible.html +0 -43
  349. data/vendor/tests/layout/stack.html +0 -53
  350. data/vendor/tests/layout/tree-radial.html +0 -31
  351. data/vendor/tests/layout/tree-radial2.html +0 -34
  352. data/vendor/tests/layout/tree-toggle.html +0 -36
  353. data/vendor/tests/layout/tree.html +0 -31
  354. data/vendor/tests/layout/tree2.html +0 -35
  355. data/vendor/tests/layout/treemap-hierarchy.html +0 -40
  356. data/vendor/tests/layout/treemap-margin.html +0 -26
  357. data/vendor/tests/layout/treemap-round.html +0 -40
  358. data/vendor/tests/layout/treemap-slice.html +0 -34
  359. data/vendor/tests/layout/treemap.html +0 -37
  360. data/vendor/tests/life.js +0 -212
  361. data/vendor/tests/mark/anchor.html +0 -25
  362. data/vendor/tests/mark/area-anchor-chain.html +0 -42
  363. data/vendor/tests/mark/area-anchor-line.html +0 -57
  364. data/vendor/tests/mark/area-anchor-stack.html +0 -35
  365. data/vendor/tests/mark/area-anchor.html +0 -43
  366. data/vendor/tests/mark/area-anchor2.html +0 -33
  367. data/vendor/tests/mark/area-cardinal.html +0 -57
  368. data/vendor/tests/mark/area-monotone.html +0 -57
  369. data/vendor/tests/mark/area-segmented-basis.html +0 -30
  370. data/vendor/tests/mark/area-segmented-cardinal.html +0 -30
  371. data/vendor/tests/mark/area-segmented-monotone.html +0 -30
  372. data/vendor/tests/mark/area-segmented-step.html +0 -44
  373. data/vendor/tests/mark/area-segmented.html +0 -29
  374. data/vendor/tests/mark/area-stacked-cardinal.html +0 -54
  375. data/vendor/tests/mark/area-stacked-monotone.html +0 -54
  376. data/vendor/tests/mark/area-stacked.html +0 -53
  377. data/vendor/tests/mark/area-step.html +0 -43
  378. data/vendor/tests/mark/area-zero.html +0 -32
  379. data/vendor/tests/mark/area.html +0 -57
  380. data/vendor/tests/mark/bar-anchor-stack.html +0 -51
  381. data/vendor/tests/mark/bar-anchor.html +0 -44
  382. data/vendor/tests/mark/bar-column-grouped.html +0 -63
  383. data/vendor/tests/mark/bar-column-stacked.html +0 -56
  384. data/vendor/tests/mark/bar-column.html +0 -54
  385. data/vendor/tests/mark/bar-grouped.html +0 -63
  386. data/vendor/tests/mark/bar-stacked.html +0 -57
  387. data/vendor/tests/mark/bar.html +0 -54
  388. data/vendor/tests/mark/cursor.html +0 -41
  389. data/vendor/tests/mark/def-type.html +0 -23
  390. data/vendor/tests/mark/dot-anchor.html +0 -33
  391. data/vendor/tests/mark/dot-radius.html +0 -22
  392. data/vendor/tests/mark/dot-stroke.html +0 -43
  393. data/vendor/tests/mark/dot.html +0 -52
  394. data/vendor/tests/mark/dot2.html +0 -61
  395. data/vendor/tests/mark/ease.html +0 -90
  396. data/vendor/tests/mark/event-dblclick.html +0 -30
  397. data/vendor/tests/mark/event-prototype.html +0 -45
  398. data/vendor/tests/mark/event-render.html +0 -45
  399. data/vendor/tests/mark/event.html +0 -24
  400. data/vendor/tests/mark/image-color-inherit.html +0 -33
  401. data/vendor/tests/mark/image-color.html +0 -35
  402. data/vendor/tests/mark/image-color2.html +0 -35
  403. data/vendor/tests/mark/image-heatmap.html +0 -29
  404. data/vendor/tests/mark/image.html +0 -32
  405. data/vendor/tests/mark/label-break.html +0 -54
  406. data/vendor/tests/mark/label-decoration.html +0 -22
  407. data/vendor/tests/mark/label-events.html +0 -32
  408. data/vendor/tests/mark/line-anchor.html +0 -42
  409. data/vendor/tests/mark/line-basis.html +0 -54
  410. data/vendor/tests/mark/line-brownian.html +0 -57
  411. data/vendor/tests/mark/line-cardinal.html +0 -77
  412. data/vendor/tests/mark/line-catmull-rom.html +0 -78
  413. data/vendor/tests/mark/line-curve.html +0 -65
  414. data/vendor/tests/mark/line-eccentricity.html +0 -39
  415. data/vendor/tests/mark/line-fill.html +0 -24
  416. data/vendor/tests/mark/line-join.html +0 -51
  417. data/vendor/tests/mark/line-monotone-non-monotone.html +0 -53
  418. data/vendor/tests/mark/line-monotone-two-way.html +0 -61
  419. data/vendor/tests/mark/line-monotone.html +0 -53
  420. data/vendor/tests/mark/line-polar.html +0 -36
  421. data/vendor/tests/mark/line-segmented-basis.html +0 -57
  422. data/vendor/tests/mark/line-segmented-cardinal.html +0 -80
  423. data/vendor/tests/mark/line-segmented-join.html +0 -52
  424. data/vendor/tests/mark/line-segmented-monotone.html +0 -56
  425. data/vendor/tests/mark/line-segmented-polar.html +0 -30
  426. data/vendor/tests/mark/line-segmented-step.html +0 -41
  427. data/vendor/tests/mark/line-segmented-step2.html +0 -32
  428. data/vendor/tests/mark/line-segmented.html +0 -30
  429. data/vendor/tests/mark/line-step.html +0 -39
  430. data/vendor/tests/mark/line-tension.html +0 -59
  431. data/vendor/tests/mark/line.html +0 -51
  432. data/vendor/tests/mark/panel-anchor.html +0 -37
  433. data/vendor/tests/mark/panel-anchor2.html +0 -31
  434. data/vendor/tests/mark/panel-anchor3.html +0 -22
  435. data/vendor/tests/mark/panel-anchor4.html +0 -28
  436. data/vendor/tests/mark/panel-anchor5.html +0 -28
  437. data/vendor/tests/mark/panel-append.html +0 -29
  438. data/vendor/tests/mark/panel-canvas.html +0 -107
  439. data/vendor/tests/mark/panel-fill.html +0 -50
  440. data/vendor/tests/mark/panel-mouse.html +0 -53
  441. data/vendor/tests/mark/panel-transform.html +0 -67
  442. data/vendor/tests/mark/property-cast.html +0 -24
  443. data/vendor/tests/mark/render-partial.html +0 -42
  444. data/vendor/tests/mark/rule-anchor.html +0 -29
  445. data/vendor/tests/mark/title.html +0 -41
  446. data/vendor/tests/mark/transition-anchor.html +0 -47
  447. data/vendor/tests/mark/transition-wedge.html +0 -47
  448. data/vendor/tests/mark/transition.html +0 -106
  449. data/vendor/tests/mark/wedge-donut.html +0 -35
  450. data/vendor/tests/mark/wedge-implied.html +0 -42
  451. data/vendor/tests/mark/wedge-pie.html +0 -37
  452. data/vendor/tests/mark/wedge-ring.html +0 -27
  453. data/vendor/tests/miserables.js +0 -348
  454. data/vendor/tests/physics/dorling.html +0 -70
  455. data/vendor/tests/physics/simulation.html +0 -56
  456. data/vendor/tests/social.js +0 -28
  457. data/vendor/tests/stanford.png +0 -0
  458. data/vendor/tests/style.css +0 -5
  459. data/vendor/tests/testify.css +0 -29
  460. data/vendor/tests/testify.js +0 -16
  461. data/vendor/tests/text/format-number.html +0 -75
@@ -11,15 +11,15 @@ module Rubyvis
11
11
  def pv
12
12
  Rubyvis
13
13
  end
14
- def self.category10(*arguments)
14
+ def self.category10(*arguments)
15
15
  scale = pv.colors(
16
- "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
16
+ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd",
17
17
  "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf")
18
18
  scale.domain(*arguments);
19
19
  scale
20
20
  end
21
21
  def self.category19(*arguments)
22
- scale = pv.colors(
22
+ scale = pv.colors(
23
23
  "#9c9ede", "#7375b5", "#4a5584", "#cedb9c", "#b5cf6b",
24
24
  "#8ca252", "#637939", "#e7cb94", "#e7ba52", "#bd9e39",
25
25
  "#8c6d31", "#e7969c", "#d6616b", "#ad494a", "#843c39",
@@ -37,4 +37,4 @@ module Rubyvis
37
37
  scale
38
38
  end
39
39
  end
40
- end
40
+ end
@@ -0,0 +1 @@
1
+
@@ -2,7 +2,7 @@ module Rubyvis
2
2
  def self.Format
3
3
  Rubyvis::Format
4
4
  end
5
-
5
+
6
6
  module Format
7
7
  def self.re(s)
8
8
  s.gsub(/[\\\^\$\*\+\?\[\]\(\)\.\{\}]/, "\\$&")
@@ -16,4 +16,4 @@ module Rubyvis
16
16
  end
17
17
  end
18
18
  require 'rubyvis/format/number'
19
- require 'rubyvis/format/date'
19
+ require 'rubyvis/format/date'
@@ -10,9 +10,16 @@ module Rubyvis
10
10
  def format(d)
11
11
  d.strftime(pattern)
12
12
  end
13
+ def format_lambda
14
+ pat=pattern
15
+ lambda {|d|
16
+ d.strftime(pat)
17
+ }
18
+ end
13
19
  def parse(s)
14
- ::Date.strptime(s, pattern)
20
+ time=::DateTime.strptime(s, pattern)
21
+ Time.utc(time.year, time.month, time.day, time.hour, time.min, time.sec, 0)
15
22
  end
16
23
  end
17
24
  end
18
- end
25
+ end
@@ -15,7 +15,7 @@ module Rubyvis
15
15
  @np = "\u2212" # default negative prefix
16
16
  @ns = "" # default negative suffix
17
17
  end
18
- def fraction_digits(*arguments)
18
+ def fraction_digits(*arguments)
19
19
  if (arguments.size>0)
20
20
  min=arguments[0]
21
21
  max=arguments[1]
@@ -24,8 +24,8 @@ module Rubyvis
24
24
  @maxk = 10**@maxf
25
25
  return self
26
26
  end
27
- [minf, maxf]
27
+ [minf, maxf]
28
28
  end
29
29
  end
30
30
  end
31
- end
31
+ end
@@ -8,7 +8,7 @@ module Rubyvis
8
8
  (f.is_a? Proc) ? f : lambda {f}
9
9
  end
10
10
  # :section: /data/Arrays.js
11
-
11
+
12
12
  def self.map(array, f=nil)
13
13
  if f
14
14
  array.size.times.map {|i|
@@ -75,9 +75,9 @@ module Rubyvis
75
75
  def self.reverse_order(a,b)
76
76
  -(a<=>b)
77
77
  end
78
-
78
+
79
79
  def self.search(array, value, f=nil)
80
- f = Rubyvis.identity if (f.nil?)
80
+ f = Rubyvis.identity if (f.nil?)
81
81
  low = 0
82
82
  high = array.size - 1;
83
83
  while (low <= high)
@@ -97,11 +97,11 @@ module Rubyvis
97
97
  i=Rubyvis.search(array,value,f)
98
98
  (i < 0 ) ? (-i-1) : i;
99
99
  end
100
-
101
-
100
+
101
+
102
102
  # :section: /data/Numbers.js
103
-
104
- def self.range(*arguments)
103
+
104
+ def self.range(*arguments)
105
105
  start, stop, step=arguments
106
106
  if (arguments.size == 1)
107
107
  stop = start;
@@ -114,12 +114,12 @@ module Rubyvis
114
114
  stop = stop- (stop - start) * 1e-10 #// floating point precision!
115
115
  j = start + step * i
116
116
  if (step < 0)
117
- while (j > stop)
117
+ while (j > stop)
118
118
  array.push(j)
119
119
  i+=1
120
120
  j = start + step * i
121
121
  end
122
- else
122
+ else
123
123
  while (j < stop)
124
124
  array.push(j)
125
125
  i+=1
@@ -130,14 +130,14 @@ module Rubyvis
130
130
  end
131
131
  def self.random(*arguments)
132
132
  start,stop,step=arguments
133
- if (arguments.size == 1)
133
+ if (arguments.size == 1)
134
134
  stop = start;
135
135
  start = 0;
136
136
  end
137
137
  step||= 1;
138
138
  return step ? ((rand() * (stop - start).quo(step)).floor * step + start) : (rand() * (stop - start) + start);
139
139
  end
140
-
140
+
141
141
  def self.sum(array,f=nil)
142
142
  if f.nil?
143
143
  array.inject(0) {|ac,v| ac+v}
@@ -172,9 +172,9 @@ module Rubyvis
172
172
  Rubyvis.sum(array,f).quo(array.size)
173
173
  end
174
174
  def self.median(array,f=nil)
175
- return (array.length - 1).quo(2) if (f == pv.index)
175
+ return (array.length - 1).quo(2) if (f == pv.index)
176
176
  array = Rubyvis.map(array, f).sort{|a,b| Rubyvis.natural_order(a,b)}
177
- return array[array.size.quo(2).floor] if (array.length % 2>0)
177
+ return array[array.size.quo(2).floor] if (array.length % 2>0)
178
178
  i = array.size.quo(2);
179
179
  return (array[i - 1] + array[i]).quo(2);
180
180
  end
@@ -56,9 +56,9 @@ class Proc
56
56
  else
57
57
  obj.instance_exec(*arguments,&self)
58
58
  end
59
- end
59
+ end
60
60
  # Same as js_apply, but using explicit arguments
61
- def js_call(obj,*args)
61
+ def js_call(obj,*args)
62
62
  js_apply(obj,args)
63
- end
63
+ end
64
64
  end
data/lib/rubyvis/label.rb CHANGED
@@ -0,0 +1 @@
1
+
data/lib/rubyvis/mark.rb CHANGED
@@ -1,61 +1,59 @@
1
1
  module Rubyvis
2
- # Represents a data-driven graphical mark. The <tt>Mark</tt> class is
3
- # the base class for all graphical marks in Protovis; it does not provide any
4
- # specific rendering functionality, but together with {@link Panel} establishes
5
- # the core framework.
2
+ # Represents a data-driven graphical mark. The <tt>Mark</tt> class is
3
+ # the base class for all graphical marks in Protovis; it does not provide any
4
+ # specific rendering functionality, but together with {@link Panel} establishes
5
+ # the core framework.
6
6
  class Mark
7
- @properties={}
8
-
9
- def self.property_method(name,_def)
10
- define_method(name) do |*arguments|
11
- v,dummy = arguments
12
- if _def and self.scene
13
- if arguments.size>0
14
- defs[name]=OpenStruct.new({:id=>(v.nil?) ? 0 : Rubyvis.id, :value=> v})
15
- return self
16
- end
17
- return defs[name]
18
- end
19
- if arguments.size>0
20
- type=(!_def).to_i<<1 | (v.is_a? Proc).to_i
21
- property_value(name,(type & 1 !=0) ? lambda {|*args| v.js_apply(self, args)} : v)._type=type
22
- #@_properties_types[name]=type
23
- return self
24
- end
25
- i=instance()
26
- if i.nil?
27
- raise "No instancia para #{name}"
28
- else
29
- #puts "Instancia para #{name}"
30
-
31
- i.send(name)
32
- end
33
- end
34
- end
35
- def property_value(name,v)
36
- prop=Property.new({:name=>name, :id=>Rubyvis.id, :value=>v})
37
- @_properties.delete_if{|v| v.name==name}
38
- @_properties.push(prop)
39
- #@_properties_values[name]=v
40
- return prop
41
- end
42
- def margin(n)
43
- self.left(n).right(n).top(n).bottom(n)
44
- end
45
- def instance(default_index=nil)
46
- scene=self.scene
47
- scene||=self.parent.instance(-1).children[self.child_index]
48
- if(default_index)
49
- index=self.respond_to?(:index) ? self.index : default_index
50
- else
51
- index=scene.size-1
52
- end
53
- #puts "index:#{index} , scene.size:#{scene.size}, default_index:#{default_index}"
54
- scene[index]
55
- end
56
-
57
-
58
- def self.attr_accessor_dsl(*attr)
7
+ @properties={}
8
+
9
+ def self.property_method(name,_def)
10
+ return if Mark.method_defined? name
11
+ Mark.send(:define_method, name) do |*arguments|
12
+ v,dummy = arguments
13
+ if _def and self.scene
14
+ if arguments.size>0
15
+ defs[name]=OpenStruct.new({:id=>(v.nil?) ? 0 : Rubyvis.id, :value=> v})
16
+ return self
17
+ end
18
+ return defs[name]
19
+ end
20
+ if arguments.size>0
21
+ type=(!_def).to_i<<1 | (v.is_a? Proc).to_i
22
+ property_value(name,(type & 1 !=0) ? lambda {|*args| v.js_apply(self, args)} : v)._type=type
23
+ #@_properties_types[name]=type
24
+ return self
25
+ end
26
+ i=instance()
27
+ if i.nil?
28
+ raise "No instance for #{self} on #{name}"
29
+ else
30
+ #puts "Instancia para #{name}"
31
+ #puts "index:#{self.index}, name:#{name}, val:#{i.send(name)}"
32
+ i.send(name)
33
+ end
34
+ end
35
+ end
36
+ def property_value(name,v)
37
+ prop=Property.new({:name=>name, :id=>Rubyvis.id, :value=>v})
38
+ @_properties.delete_if{|v1| v1.name==name}
39
+ @_properties.push(prop)
40
+ #@_properties_values[name]=v
41
+ return prop
42
+ end
43
+ def margin(n)
44
+ self.left(n).right(n).top(n).bottom(n)
45
+ end
46
+ def instance(default_index=nil)
47
+ scene=self.scene
48
+ scene||=self.parent.instance(-1).children[self.child_index]
49
+
50
+ index = self.respond_to?(:index) ? self.index : default_index
51
+ #puts "type: #{type}, self.index: #{self.index}, index:#{index}"
52
+ scene[index<0 ? scene.length-1: index]
53
+ end
54
+
55
+
56
+ def self.attr_accessor_dsl(*attr)
59
57
  attr.each do |sym|
60
58
  @properties[sym]=true
61
59
  sym_w_sm=sym.to_s.gsub(":","")
@@ -65,11 +63,11 @@ module Rubyvis
65
63
  }
66
64
  end
67
65
  end
68
-
66
+
69
67
  attr_accessor :parent, :root, :index, :child_index, :scene, :proto, :target, :scale
70
68
  attr_reader :_properties
71
- attr_accessor_dsl :data,:visible, :left, :right, :top, :bottom, :cursor, :title, :reverse, :antialias, :events, :id
72
-
69
+ attr_accessor_dsl :data,:visible, :left, :right, :top, :bottom, :cursor, :title, :reverse, :antialias, :events, :id
70
+
73
71
  @scene=nil
74
72
  @stack=[]
75
73
  @index=nil
@@ -100,7 +98,7 @@ module Rubyvis
100
98
  def Mark.stack=(v)
101
99
  @stack=v
102
100
  end
103
-
101
+
104
102
  def initialize(opts=Hash.new)
105
103
  #@_properties_values={}
106
104
  #@_properties_types={}
@@ -115,12 +113,12 @@ module Rubyvis
115
113
  @index=-1
116
114
  @scale=1
117
115
  @scene=nil
118
-
116
+
119
117
  end
120
118
  def type
121
119
  "mark"
122
120
  end
123
- def self.defaults
121
+ def self.defaults
124
122
  Mark.new({:data=>lambda {|d| [d]}, :visible=>true, :antialias=>true, :events=>'painted'})
125
123
  end
126
124
  def extend(proto)
@@ -128,49 +126,53 @@ module Rubyvis
128
126
  @target=proto.target
129
127
  self
130
128
  end
131
-
129
+
132
130
  def instances(source)
133
-
134
- mark = self
135
- index = []
136
- scene=nil
137
- while (!(scene = mark.scene)) do
138
- source = source.parent;
139
- index.push(OpenStruct.new({:index=>source.index, :child_index=>mark.child_index}))
140
- mark = mark.parent
141
- end
142
- while (index.size>0) do
143
- i = index.pop()
144
- scene = scene[i.index].children[i.child_index]
145
- end
146
- #
147
- # When the anchor target is also an ancestor, as in the case of adding
148
- # to a panel anchor, only generate one instance per panel. Also, set
149
- # the margins to zero, since they are offset by the enclosing panel.
150
- # /
151
- if (self.respond_to? :index and self.index)
152
-
153
- s = scene[self.index].dup
154
- s.right = s.top = s.left = s.bottom = 0;
155
- return [s];
156
- end
157
- return scene;
158
- end
159
131
 
160
-
161
-
162
-
163
-
164
-
165
-
132
+ mark = self
133
+ index = []
134
+ scene=nil
135
+ while (!(scene = mark.scene)) do
136
+ source = source.parent;
137
+ index.push(OpenStruct.new({:index=>source.index, :child_index=>mark.child_index}))
138
+ mark = mark.parent
139
+ end
140
+
141
+ while (index.size>0) do
142
+ i = index.pop()
143
+ scene = scene[i.index].children[i.child_index]
144
+ end
145
+ #
146
+ # When the anchor target is also an ancestor, as in the case of adding
147
+ # to a panel anchor, only generate one instance per panel. Also, set
148
+ # the margins to zero, since they are offset by the enclosing panel.
149
+ # /
150
+ if (self.respond_to? :index and self.index)
151
+
152
+ s = scene[self.index].dup
153
+ s.right = s.top = s.left = s.bottom = 0;
154
+ return [s];
155
+ end
156
+ return scene;
157
+ end
158
+
159
+
160
+
161
+
162
+
163
+
164
+
166
165
  def add(type)
167
166
  parent.add(type).extend(self)
168
167
  end
169
- def anchor(name="center")
170
-
168
+ def anchor(name='center')
169
+ mark_anchor(name)
170
+ end
171
+ def mark_anchor(name="center")
172
+
171
173
  anchor=Rubyvis::Anchor.new(self).name(name).data(lambda {
172
174
  self.scene.target.map {|s| s.data} }).visible(lambda {
173
- self.scene.target[self.index].visible
175
+ self.scene.target[self.index].visible
174
176
  }).id(lambda {self.scene.target[self.index].id}).left(lambda {
175
177
  s = self.scene.target[self.index]
176
178
  w = s.width
@@ -183,10 +185,10 @@ end
183
185
  s.left + w
184
186
  end
185
187
  }).top(lambda {
186
- s = self.scene.target[self.index]
187
- h = s.height
188
- h||= 0
189
- if ['left','right','center'].include? self.name
188
+ s = self.scene.target[self.index]
189
+ h = s.height
190
+ h||= 0
191
+ if ['left','right','center'].include? self.name
190
192
  s.top+h/2.0
191
193
  elsif self.name=='top'
192
194
  nil
@@ -200,32 +202,34 @@ end
200
202
  s = self.scene.target[self.index];
201
203
  self.name() == "top" ? s.bottom + (s.height ? s.height : 0) : nil;
202
204
  }).text_align(lambda {
203
- if ['bottom','top','center'].include? self.name
204
- 'center'
205
- elsif self.name=='right'
206
- 'right'
207
- else
208
- 'left'
209
- end
205
+ if ['bottom','top','center'].include? self.name
206
+ 'center'
207
+ elsif self.name=='right'
208
+ 'right'
209
+ else
210
+ 'left'
211
+ end
210
212
  }).text_baseline(lambda {
211
- if ['right','left','center'].include? self.name
212
- 'middle'
213
- elsif self.name=='top'
214
- 'top'
215
- else
216
- 'bottom'
217
- end
213
+ if ['right','left','center'].include? self.name
214
+ 'middle'
215
+ elsif self.name=='top'
216
+ 'top'
217
+ else
218
+ 'bottom'
219
+ end
218
220
  })
219
-
220
-
221
+
222
+
221
223
  return anchor
222
224
  end
223
-
224
-
225
-
226
-
227
-
225
+
226
+
227
+
228
228
  def build_implied(s)
229
+ mark_build_implied(s)
230
+ end
231
+
232
+ def mark_build_implied(s)
229
233
  l=s.left
230
234
  r=s.right
231
235
  t=s.top
@@ -243,7 +247,7 @@ end
243
247
  w=width-r-l
244
248
  elsif r.nil?
245
249
  if l.nil?
246
-
250
+
247
251
  r=(width-w) / (2.0)
248
252
  l=r
249
253
  else
@@ -252,9 +256,9 @@ end
252
256
  elsif l.nil?
253
257
  l=width-w-r
254
258
  end
255
-
259
+
256
260
  height=self.parent ? self.parent.height(): (h+(t.nil? ? 0 : t )+(b.nil? ? 0 : b))
257
-
261
+
258
262
  if h.nil?
259
263
  t||=0
260
264
  b||=0
@@ -269,16 +273,16 @@ end
269
273
  elsif t.nil?
270
274
  t=height-h-b
271
275
  end
272
-
273
-
274
-
276
+
277
+
278
+
275
279
  s.left=l
276
280
  s.right=r
277
281
  s.top=t
278
282
  s.bottom=b
279
-
283
+
280
284
  # puts "#{l},#{r},#{t},#{b}"
281
-
285
+
282
286
  s.width=w if prop[:width]
283
287
  s.height=h if prop[:height]
284
288
  s.text_style=Rubyvis::Color.transparent if prop[:text_style] and !s.text_style
@@ -290,38 +294,38 @@ end
290
294
  @stack=Mark.stack
291
295
  if parent and !self.root.scene
292
296
  root.render()
293
- return
297
+ return
294
298
  end
295
299
  @indexes=[]
296
300
  mark=self
297
301
  until mark.parent.nil?
298
302
  @indexes.unshift(mark.child_index)
299
303
  end
300
- bind
304
+ bind
301
305
  while(parent and !parent.respond_to? :index) do
302
306
  parent=parent.parent
303
307
  end
304
-
308
+
305
309
  self.context( parent ? parent.scene : nil, parent ? parent.index : -1, lambda {render_render(self.root, 0,1)})
306
-
310
+
307
311
  end
308
-
312
+
309
313
  def render_render(mark,depth,scale)
310
314
  mark.scale=scale
311
- if (depth < @indexes.size)
315
+ if (depth < @indexes.size)
312
316
  @stack.unshift(nil)
313
- if (mark.respond_to? :index and mark.index)
314
- render_instance(mark, depth, scale);
315
- else
317
+ if (mark.respond_to? :index and mark.index)
318
+ render_instance(mark, depth, scale);
319
+ else
316
320
  mark.scene.size.times {|i|
317
321
  mark.index = i;
318
322
  render_instance(mark, depth, scale);
319
323
  }
320
- mark.index=nil
324
+ mark.index=nil
321
325
  end
322
- stack.shift();
323
- else
324
- mark.build();
326
+ stack.shift
327
+ else
328
+ mark.build
325
329
  pv.Scene.scale = scale;
326
330
  pv.Scene.update_all(mark.scene);
327
331
  end
@@ -336,7 +340,7 @@ end
336
340
  mark.children[i].scene=s.children[i]
337
341
  }
338
342
  Mark.stack[0]=s.data
339
-
343
+
340
344
  if (child.scene)
341
345
  render_render(child,depth+1,scale*s.transform.k)
342
346
  else
@@ -347,7 +351,7 @@ end
347
351
  child_index.times {|i|
348
352
  mark.children[i].scene=nil
349
353
  }
350
-
354
+
351
355
  end
352
356
  end
353
357
  private :render_render, :render_instance
@@ -359,23 +363,25 @@ end
359
363
  if !@seen.has_key?(k)
360
364
  @seen[k]=v
361
365
  case k
362
- when :data
363
- @_data=v
364
- when :visible
365
- @_required.push(v)
366
- when :id
367
- @_required.push(v)
368
- else
369
- @types[v._type].push(v)
366
+ when :data
367
+ @_data=v
368
+ when :visible
369
+ @_required.push(v)
370
+ when :id
371
+ @_required.push(v)
372
+ else
373
+ @types[v._type].push(v)
370
374
  end
371
375
  end
372
376
  }
373
377
  end while(mark = mark.proto)
374
378
  end
375
-
379
+
376
380
  attr_accessor :binds
377
-
378
- def bind()
381
+ def bind
382
+ mark_bind
383
+ end
384
+ def mark_bind()
379
385
  @seen={}
380
386
  @types={1=>[],2=>[],3=>[]}
381
387
  @_data=nil
@@ -396,8 +402,8 @@ end
396
402
  @binds=OpenStruct.new({:properties=>@seen, :data=>@_data, :required=>@_required, :optional=>@types[1]+@types[2]+@types[3]
397
403
  })
398
404
  end
399
-
400
-
405
+
406
+
401
407
  def context_apply(scene,index)
402
408
  Mark.scene=scene
403
409
  Mark.index=index
@@ -421,15 +427,15 @@ end
421
427
  k=k*mark.scene[mark.index].transform.k
422
428
  }
423
429
  if (that.children)
424
- n=than.children.size
430
+ n=that.children.size
425
431
  n.times {|i|
426
432
  mark=that.children[i]
427
433
  mark.scene=that.scene[that.index].children[i]
428
434
  mark.scale=k
429
435
  }
430
-
436
+
431
437
  end
432
-
438
+
433
439
  end
434
440
  def context_clear(scene,index)
435
441
  return if !scene
@@ -441,7 +447,7 @@ end
441
447
  mark.scene=nil
442
448
  mark.scale=nil
443
449
  }
444
-
450
+
445
451
  end
446
452
  mark=that
447
453
  begin
@@ -467,11 +473,11 @@ end
467
473
  context_apply(oscene,oindex)
468
474
  end
469
475
  end
470
-
476
+
471
477
  def build
472
478
  scene=self.scene
473
479
  stack=Mark.stack
474
-
480
+
475
481
  if(!scene)
476
482
  self.scene=SceneElement.new
477
483
  scene=self.scene
@@ -492,10 +498,10 @@ end
492
498
  data=self.binds.data
493
499
  #puts "stack:#{stack}"
494
500
  #puts "data_value:#{data.value}"
495
-
501
+
496
502
  data=(data._type & 1)>0 ? data.value.js_apply(self, stack) : data.value
497
503
  #puts "data:#{data}"
498
-
504
+
499
505
  stack.unshift(nil)
500
506
  scene.size=data.size
501
507
  data.each_with_index {|d, i|
@@ -513,7 +519,10 @@ end
513
519
  stack.shift()
514
520
  return self
515
521
  end
516
- def build_instance(s1)
522
+ def build_instance(s)
523
+ mark_build_instance(s)
524
+ end
525
+ def mark_build_instance(s1)
517
526
  build_properties(s1, self.binds.required)
518
527
  if s1.visible
519
528
  build_properties(s1,self.binds.optional)
@@ -531,7 +540,7 @@ end
531
540
  end
532
541
  ss.send((prop.name.to_s+"=").to_sym, v)
533
542
  end
534
- #p ss
543
+ # p ss
535
544
  end
536
545
  end
537
546
  end