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
@@ -3,27 +3,27 @@ module Rubyvis
3
3
  def self.bar(scenes)
4
4
  e=scenes._g.elements[1]
5
5
  scenes.each_with_index do |s,i|
6
- next unless s.visible
7
- fill=s.fill_style
8
- stroke=s.stroke_style
9
- next if(!fill.opacity and !stroke.opacity)
10
- e=SvgScene.expect(e,'rect', {
11
- "shape-rendering"=> s.antialias ? nil : "crispEdges",
12
- "pointer-events"=> s.events,
13
- "cursor"=> s.cursor,
14
- "x"=> s.left,
15
- "y"=> s.top,
16
- "width"=> [1E-10, s.width].max,
17
- "height"=> [1E-10, s.height].max,
18
- "fill"=> fill.color,
19
- "fill-opacity"=> (fill.opacity==0) ? nil : fill.opacity,
20
- "stroke"=> stroke.color,
21
- "stroke-opacity"=> (stroke.opacity==0) ? nil : stroke.opacity,
22
- "stroke-width"=> stroke.opacity ? s.line_width / SvgScene.scale.to_f : nil
23
- })
24
-
25
- e=SvgScene.append(e,scenes,i)
26
-
6
+ next unless s.visible
7
+ fill=s.fill_style
8
+ stroke=s.stroke_style
9
+ next if(fill.opacity==0.0 and stroke.opacity==0.0)
10
+ e=SvgScene.expect(e,'rect', {
11
+ "shape-rendering"=> s.antialias ? nil : "crispEdges",
12
+ "pointer-events"=> s.events,
13
+ "cursor"=> s.cursor,
14
+ "x"=> s.left,
15
+ "y"=> s.top,
16
+ "width"=> [1E-10, s.width].max,
17
+ "height"=> [1E-10, s.height].max,
18
+ "fill"=> fill.color,
19
+ "fill-opacity"=> (fill.opacity==0) ? nil : fill.opacity,
20
+ "stroke"=> stroke.color,
21
+ "stroke-opacity"=> (stroke.opacity==0) ? nil : stroke.opacity,
22
+ "stroke-width"=> stroke.opacity ? s.line_width / SvgScene.scale.to_f : nil
23
+ })
24
+
25
+ e=SvgScene.append(e,scenes,i)
26
+
27
27
  end
28
28
  e
29
29
  end
@@ -3,47 +3,47 @@ module Rubyvis
3
3
  def self.label(scenes)
4
4
  e=scenes._g.elements[1]
5
5
  scenes.each_with_index do |s,i|
6
- next unless s.visible
7
- fill=s.text_style
8
- next if(fill.opacity==0 or s.text.nil?)
9
- x=0
10
- y=0
11
- dy=0
12
- anchor='start'
13
- case s.text_baseline
6
+ next unless s.visible
7
+ fill=s.text_style
8
+ next if(fill.opacity==0 or s.text.nil?)
9
+ x=0
10
+ y=0
11
+ dy=0
12
+ anchor='start'
13
+ case s.text_baseline
14
14
  when 'middle'
15
15
  dy=".35em"
16
16
  when "top"
17
17
  dy = ".71em"; y = s.text_margin
18
18
  when "bottom"
19
19
  y = "-" + s.text_margin.to_s
20
- end
21
- case s.text_align
22
- when 'rigth'
23
- anchor = "end"; x = "-" + s.text_margin.to_s
24
- when "center"
25
- anchor = "middle"
26
-
27
- when "left"
28
- x = s.text_margin
29
- end
30
- e=SvgScene.expect(e,'text', {
31
- "pointer-events"=> s.events,
32
- "cursor"=> s.cursor,
33
- "x"=> x,
34
- "y"=> y,
35
- "dy"=> dy,
36
- "transform"=> "translate(" + s.left.to_s + "," + s.top.to_s + ")" + (s.text_angle!=0 ? " rotate(" + (180 * s.text_angle / Math::PI).to_s + ")" : "") + (self.scale != 1 ? " scale(" + 1 / self.scale + ")" : ""),
37
- "fill"=> fill.color,
38
- "fill-opacity"=> fill.opacity || nil,
39
- "text-anchor"=> anchor
40
- }, {
20
+ end
21
+ case s.text_align
22
+ when 'rigth'
23
+ anchor = "end"; x = "-" + s.text_margin.to_s
24
+ when "center"
25
+ anchor = "middle"
26
+
27
+ when "left"
28
+ x = s.text_margin
29
+ end
30
+ e=SvgScene.expect(e,'text', {
31
+ "pointer-events"=> s.events,
32
+ "cursor"=> s.cursor,
33
+ "x"=> x,
34
+ "y"=> y,
35
+ "dy"=> dy,
36
+ "transform"=> "translate(" + s.left.to_s + "," + s.top.to_s + ")" + (s.text_angle!=0 ? " rotate(" + (180 * s.text_angle / Math::PI).to_s + ")" : "") + (self.scale != 1 ? " scale(" + 1 / self.scale + ")" : ""),
37
+ "fill"=> fill.color,
38
+ "fill-opacity"=> fill.opacity || nil,
39
+ "text-anchor"=> anchor
40
+ }, {
41
41
  "font"=> s.font, "text-shadow"=> s.text_shadow, "text-decoration"=> s.text_decoration })
42
- e.text=s.text
43
-
44
-
45
- e=SvgScene.append(e,scenes,i)
46
-
42
+ e.text=s.text
43
+
44
+
45
+ e=SvgScene.append(e,scenes,i)
46
+
47
47
  end
48
48
  e
49
49
  end
@@ -0,0 +1,185 @@
1
+ module Rubyvis
2
+ module SvgScene
3
+ def self.line(scenes)
4
+
5
+ e=scenes._g.elements[1]
6
+ return e if (scenes.size < 2)
7
+ s = scenes[0]
8
+
9
+ # segmented */
10
+ return self.line_segment(scenes) if (s.segmented)
11
+
12
+ #/* visible */
13
+ return e if (!s.visible)
14
+ fill = s.fill_style
15
+ stroke = s.stroke_style
16
+
17
+ return e if (fill.opacity==0.0 and stroke.opacity==0.0)
18
+ #/* points */
19
+
20
+ d = "M" + s.left.to_s + "," + s.top.to_s
21
+
22
+ if (scenes.size > 2 and (s.interpolate == "basis" or s.interpolate == "cardinal" or s.interpolate == "monotone"))
23
+ case (s.interpolate)
24
+ when "basis"
25
+ d = d+ curve_basis(scenes)
26
+ when "cardinal"
27
+ d = d+curve_cardinal(scenes, s.tension)
28
+ when "monotone"
29
+ d = d+curve_monotone(scenes)
30
+ end
31
+
32
+ else
33
+ (1...scenes.size).each {|i|
34
+ d+= path_segment(scenes[i-1],scenes[i])
35
+ }
36
+ end
37
+
38
+ e = SvgScene.expect(e, "path", {
39
+ "shape-rendering"=> s.antialias ? nil : "crispEdges",
40
+ "pointer-events"=> s.events,
41
+ "cursor"=> s.cursor,
42
+ "d"=> d,
43
+ "fill"=> fill.color,
44
+ "fill-opacity"=> (fill.opacity==0.0) ? nil : fill.opacity,
45
+ "stroke"=> stroke.color,
46
+ "stroke-opacity"=> (stroke.opacity==0.0) ? nil : stroke.opacity,
47
+ "stroke-width"=> (stroke.opacity>0) ? s.line_width / self.scale : nil,
48
+ "stroke-linejoin"=> s.line_join
49
+ });
50
+ return SvgScene.append(e, scenes, 0);
51
+ end
52
+
53
+ def self.line_segment(scenes)
54
+
55
+ e=scenes._g.elements[1]
56
+
57
+ s = scenes[0];
58
+ paths=nil
59
+ case s.interpolate
60
+ when "basis"
61
+ paths = curve_basis_segments(scenes)
62
+ when "cardinal"
63
+ paths=curve_cardinal_segments(scenes, s.tension)
64
+ when "monotone"
65
+ paths = curve_monotone_segments(scenes)
66
+ end
67
+
68
+ (scenes.length-1).times {|i|
69
+
70
+ s1 = scenes[i]
71
+ s2 = scenes[i + 1];
72
+
73
+ #/* visible */
74
+ next if (!s1.visible and !s2.visible)
75
+
76
+ stroke = s1.stroke_style
77
+ fill = pv.Color.transparent
78
+
79
+ next if stroke.opacity==0.0
80
+
81
+ #/* interpolate */
82
+ d=nil
83
+ if ((s1.interpolate == "linear") and (s1.lineJoin == "miter"))
84
+ fill = stroke;
85
+ stroke = pv.Color.transparent;
86
+ d = path_join(scenes[i - 1], s1, s2, scenes[i + 2]);
87
+ elsif(paths)
88
+ d = paths[i];
89
+ else
90
+ d = "M" + s1.left + "," + s1.top + path_segment(s1, s2);
91
+ end
92
+
93
+ e = SvgScene.expect(e, "path", {
94
+ "shape-rendering"=> s1.antialias ? nil : "crispEdges",
95
+ "pointer-events"=> s1.events,
96
+ "cursor"=> s1.cursor,
97
+ "d"=> d,
98
+ "fill"=> fill.color,
99
+ "fill-opacity"=> (fill.opacity==0.0) ? nil : fill.opacity,
100
+ "stroke"=> stroke.color,
101
+ "stroke-opacity"=> (stroke.opacity==0.0) ? nil : stroke.opacity,
102
+ "stroke-width"=> stroke.opacity>0 ? s1.line_width / self.scale : nil,
103
+ "stroke-linejoin"=> s1.line_join
104
+ });
105
+ e = SvgScene.append(e, scenes, i);
106
+ }
107
+ return e
108
+ end
109
+
110
+ #/** @private Returns the path segment for the specified points. */
111
+
112
+ def self.path_segment(s1, s2)
113
+ l = 1; # sweep-flag
114
+ case (s1.interpolate)
115
+ when "polar-reverse"
116
+ l = 0;
117
+ when "polar"
118
+ dx = s2.left - s1.left,
119
+ dy = s2.top - s1.top
120
+ e = 1 - s1.eccentricity
121
+ r = Math.sqrt(dx * dx + dy * dy) / (2 * e)
122
+ if !((e<=0) and (e>1))
123
+ return "A" + r + "," + r + " 0 0," + l + " " + s2.left + "," + s2.top
124
+ end
125
+ when "step-before"
126
+ return "V" + s2.top + "H" + s2.left
127
+ when "step-after"
128
+ return "H" + s2.left + "V" + s2.top
129
+ end
130
+ return "L" + s2.left.to_s + "," + s2.top.to_s
131
+ end
132
+
133
+ #/** @private Line-line intersection, per Akenine-Moller 16.16.1. */
134
+ def self.line_intersect(o1, d1, o2, d2)
135
+ return o1.plus(d1.times(o2.minus(o1).dot(d2.perp()) / d1.dot(d2.perp())));
136
+ end
137
+
138
+ #/** @private Returns the miter join path for the specified points. */
139
+ def self.path_join(s0, s1, s2, s3)
140
+ #
141
+ # P1-P2 is the current line segment. V is a vector that is perpendicular to
142
+ # the line segment, and has length lineWidth / 2. ABCD forms the initial
143
+ # bounding box of the line segment (i.e., the line segment if we were to do
144
+ # no joins).
145
+ #
146
+
147
+ p1 = pv.vector(s1.left, s1.top)
148
+
149
+ p2 = pv.vector(s2.left, s2.top)
150
+
151
+ p = p2.minus(p1)
152
+
153
+ v = p.perp().norm()
154
+
155
+ w = v.times(s1.lineWidth / (2 * this.scale))
156
+
157
+ a = p1.plus(w)
158
+ b = p2.plus(w)
159
+ c = p2.minus(w)
160
+ d = p1.minus(w)
161
+
162
+ #/*
163
+ # * Start join. P0 is the previous line segment's start point. We define the
164
+ # * cutting plane as the average of the vector perpendicular to P0-P1, and
165
+ # * the vector perpendicular to P1-P2. This insures that the cross-section of
166
+ # * the line on the cutting plane is equal if the line-width is unchanged.
167
+ # * Note that we don't implement miter limits, so these can get wild.
168
+ # */
169
+ if (s0 and s0.visible)
170
+ v1 = p1.minus(s0.left, s0.top).perp().norm().plus(v);
171
+ d = line_intersect(p1, v1, d, p);
172
+ a = line_intersect(p1, v1, a, p);
173
+ end
174
+
175
+ #/* Similarly, for end join. */
176
+ if (s3 && s3.visible)
177
+ v2 = pv.vector(s3.left, s3.top).minus(p2).perp().norm().plus(v);
178
+ c = line_intersect(p2, v2, c, p);
179
+ b = line_intersect(p2, v2, b, p);
180
+ end
181
+
182
+ return "M" + a.x + "," + a.y+ "L" + b.x + "," + b.y+ " " + c.x + "," + c.y+ " " + d.x + "," + d.y
183
+ end
184
+ end
185
+ end
@@ -1,14 +1,15 @@
1
1
  module Rubyvis
2
2
  module SvgScene
3
3
  def self.panel(scenes)
4
+ puts " -> panel: #{scenes.inspect}" if $DEBUG
4
5
  g=scenes._g
5
- e=(@g.nil?) ? nil : @g.elements[1]
6
+ e=(g.nil?) ? nil : g.elements[1]
6
7
  if g
7
- e=g.elements[0]
8
+ e=g.elements[1]
8
9
  end
9
10
  scenes.each_with_index do |s,i|
10
11
  next unless s.visible
11
-
12
+
12
13
  if(!scenes.parent)
13
14
  if g and g.parent!=s.canvas
14
15
  g=s.canvas.elements[1]
@@ -31,7 +32,7 @@ module Rubyvis
31
32
  if s.overflow=='hidden'
32
33
  id=Rubyvis.id.to_s(36)
33
34
  c=self.expect(e,'g',{'clip-path'=>'url(#'+id+')'});
34
- g.add_element(c) if(!c.parent)
35
+ g.add_element(c) if(!c.parent)
35
36
  scenes._g=g=c
36
37
  e=c.elements[1]
37
38
  e=self.expect(e,'clipPath',{'id'=>id})
@@ -42,20 +43,21 @@ module Rubyvis
42
43
  r.attributes['height']=s.height
43
44
  g.add_element(e) if !e.parent
44
45
  e=e.next_sibling_node
45
-
46
+
46
47
  end
47
48
  e=self.fill(e,scenes, i)
48
49
  k=self.scale
49
50
  t=s.transform
50
-
51
+
51
52
  x=s.left+t.x
52
53
  y=s.top+t.y
53
-
54
-
54
+
55
+
55
56
  SvgScene.scale=SvgScene.scale*t.k
56
- s.children.each_with_index {|child, i|
57
+
58
+ s.children.each_with_index {|child, i2|
57
59
  child._g=e=SvgScene.expect(e, "g", {
58
- "transform"=> "translate(" + x.to_s + "," + y.to_s + ")" + (t.k != 1 ? " scale(" + t.k.to_s + ")" : "")
60
+ "transform"=> "translate(" + x.to_s + "," + y.to_s + ")" + (t.k != 1 ? " scale(" + t.k.to_s + ")" : "")
59
61
  })
60
62
  SvgScene.update_all(child)
61
63
  g.add_element(e) if(!e.parent)
@@ -63,46 +65,50 @@ module Rubyvis
63
65
  }
64
66
  SvgScene.scale=k
65
67
  e=SvgScene.stroke(e,scenes,i)
66
-
67
- return e
68
+ if (s.overflow=='hidden')
69
+ scenes._g=g=c.parent
70
+ e=c.next_sibling_node
71
+ end
68
72
  end
69
- end
73
+ return e
74
+
75
+ end
76
+
77
+
70
78
 
71
-
72
-
73
79
  def self.fill(e,scenes,i)
74
80
  s=scenes[i]
75
81
  fill=s.fill_style
76
82
  if(fill.opacity>0 or s.events=='all')
77
83
  e=SvgScene.expect(e,'rect', {
78
- "shape-rendering"=> s.antialias ? nil : "crispEdges",
79
- "pointer-events"=> s.events,
80
- "cursor"=> s.cursor,
81
- "x"=> s.left,
82
- "y"=> s.top,
83
- "width"=> s.width,
84
- "height"=> s.height,
85
- "fill"=> fill.color,
86
- "fill-opacity"=> fill.opacity,
87
- "stroke"=> nil
88
- })
84
+ "shape-rendering"=> s.antialias ? nil : "crispEdges",
85
+ "pointer-events"=> s.events,
86
+ "cursor"=> s.cursor,
87
+ "x"=> s.left,
88
+ "y"=> s.top,
89
+ "width"=> s.width,
90
+ "height"=> s.height,
91
+ "fill"=> fill.color,
92
+ "fill-opacity"=> fill.opacity,
93
+ "stroke"=> nil
94
+ })
89
95
  e=SvgScene.append(e,scenes, i)
90
96
  end
91
97
  e
92
98
  end
93
-
94
-
99
+
100
+
95
101
  def self.stroke(e, scenes, i)
96
102
  s = scenes[i]
97
103
  stroke = s.stroke_style
98
- if (stroke.opacity>0 or s.events == "all")
104
+ if (stroke.opacity>0 or s.events == "all")
99
105
  e = self.expect(e, "rect", {
100
106
  "shape-rendering"=> s.antialias ? nil : "crispEdges",
101
107
  "pointer-events"=> s.events == "all" ? "stroke" : s.events,
102
108
  "cursor"=> s.cursor,
103
109
  "x"=> s.left,
104
110
  "y"=> s.top,
105
- "width"=> [1E-10, s.width].max,
111
+ "width"=> [1E-10, s.width].max,
106
112
  "height"=>[1E-10, s.height].max,
107
113
  "fill"=>nil,
108
114
  "stroke"=> stroke.color,
@@ -3,25 +3,24 @@ module Rubyvis
3
3
  def self.rule(scenes)
4
4
  e=scenes._g.elements[1]
5
5
  scenes.each_with_index do |s,i|
6
- next unless s.visible
7
- stroke=s.stroke_style
8
-
9
- next if(!stroke.opacity)
10
- e=SvgScene.expect(e,'line', {
11
- "shape-rendering"=> s.antialias ? nil : "crispEdges",
12
- "pointer-events"=> s.events,
13
- "cursor"=> s.cursor,
14
- "x1"=> s.left,
15
- "y1"=> s.top,
16
- 'x2'=> s.left+s.width,
17
- 'y2'=>s.top+s.height,
18
- "stroke"=> stroke.color,
19
- "stroke-opacity"=> stroke.opacity,
20
- "stroke-width"=> s.line_width/self.scale.to_f
21
- })
22
-
23
- e=SvgScene.append(e,scenes,i)
24
-
6
+ next unless s.visible
7
+ stroke=s.stroke_style
8
+ next if(!stroke.opacity)
9
+ e=SvgScene.expect(e,'line', {
10
+ "shape-rendering"=> s.antialias ? nil : "crispEdges",
11
+ "pointer-events"=> s.events,
12
+ "cursor"=> s.cursor,
13
+ "x1"=> s.left,
14
+ "y1"=> s.top,
15
+ 'x2'=> s.left+s.width,
16
+ 'y2'=>s.top+s.height,
17
+ "stroke"=> stroke.color,
18
+ "stroke-opacity"=> stroke.opacity,
19
+ "stroke-width"=> s.line_width/self.scale.to_f
20
+ })
21
+
22
+ e=SvgScene.append(e,scenes,i)
23
+
25
24
  end
26
25
  e
27
26
  end