rubyvis 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +8 -1
- data/Manifest.txt +100 -416
- data/README.txt +5 -2
- data/examples/barley/barley.rb +79 -0
- data/examples/crimea/crimea.rb +37 -0
- data/examples/crimea/crimea_line.rb +47 -0
- data/examples/second.rb +2 -2
- data/examples/third.rb +16 -0
- data/lib/rubyvis.rb +2 -1
- data/lib/rubyvis/color/color.rb +170 -169
- data/lib/rubyvis/color/colors.rb +4 -4
- data/lib/rubyvis/color/ramp.rb +1 -0
- data/lib/rubyvis/format.rb +2 -2
- data/lib/rubyvis/format/date.rb +9 -2
- data/lib/rubyvis/format/number.rb +3 -3
- data/lib/rubyvis/internals.rb +13 -13
- data/lib/rubyvis/javascript_behaviour.rb +3 -3
- data/lib/rubyvis/label.rb +1 -0
- data/lib/rubyvis/mark.rb +178 -169
- data/lib/rubyvis/mark/anchor.rb +4 -4
- data/lib/rubyvis/mark/area.rb +93 -5
- data/lib/rubyvis/mark/bar.rb +1 -1
- data/lib/rubyvis/mark/label.rb +2 -2
- data/lib/rubyvis/mark/line.rb +11 -5
- data/lib/rubyvis/mark/panel.rb +13 -11
- data/lib/rubyvis/mark/rule.rb +2 -2
- data/lib/rubyvis/property.rb +3 -2
- data/lib/rubyvis/scale.rb +4 -4
- data/lib/rubyvis/scale/linear.rb +2 -2
- data/lib/rubyvis/scale/ordinal.rb +41 -41
- data/lib/rubyvis/scale/quantitative.rb +212 -200
- data/lib/rubyvis/scene/svg_bar.rb +21 -21
- data/lib/rubyvis/scene/svg_label.rb +34 -34
- data/lib/rubyvis/scene/svg_line.rb +185 -0
- data/lib/rubyvis/scene/svg_panel.rb +36 -30
- data/lib/rubyvis/scene/svg_rule.rb +18 -19
- data/lib/rubyvis/scene/svg_scene.rb +33 -30
- data/lib/rubyvis/sceneelement.rb +5 -1
- data/lib/rubyvis/transform.rb +2 -2
- data/spec/mark_spec.rb +6 -6
- data/spec/scale_linear_datetime_spec.rb +52 -0
- data/spec/scale_linear_spec.rb +0 -10
- data/vendor/{protovis-r3.3.js → protovis/protovis-r3.3.js} +0 -0
- data/vendor/{src → protovis/src}/behavior/Behavior.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Drag.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Pan.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Point.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Resize.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Select.js +0 -0
- data/vendor/{src → protovis/src}/behavior/Zoom.js +0 -0
- data/vendor/{src → protovis/src}/color/Color.js +0 -0
- data/vendor/{src → protovis/src}/color/Colors.js +0 -0
- data/vendor/{src → protovis/src}/color/Ramp.js +0 -0
- data/vendor/{src → protovis/src}/data/Arrays.js +0 -0
- data/vendor/{src → protovis/src}/data/Dom.js +0 -0
- data/vendor/{src → protovis/src}/data/Flatten.js +0 -0
- data/vendor/{src → protovis/src}/data/Histogram.js +0 -0
- data/vendor/{src → protovis/src}/data/LinearScale.js +0 -0
- data/vendor/{src → protovis/src}/data/LogScale.js +0 -0
- data/vendor/{src → protovis/src}/data/Nest.js +0 -0
- data/vendor/{src → protovis/src}/data/Numbers.js +0 -0
- data/vendor/{src → protovis/src}/data/Objects.js +0 -0
- data/vendor/{src → protovis/src}/data/OrdinalScale.js +0 -0
- data/vendor/{src → protovis/src}/data/QuantileScale.js +0 -0
- data/vendor/{src → protovis/src}/data/QuantitativeScale.js +0 -0
- data/vendor/{src → protovis/src}/data/RootScale.js +0 -0
- data/vendor/{src → protovis/src}/data/Scale.js +0 -0
- data/vendor/{src → protovis/src}/data/Transform.js +0 -0
- data/vendor/{src → protovis/src}/data/Tree.js +0 -0
- data/vendor/{src → protovis/src}/data/Vector.js +0 -0
- data/vendor/{src → protovis/src}/geo/Geo.js +0 -0
- data/vendor/{src → protovis/src}/geo/GeoScale.js +0 -0
- data/vendor/{src → protovis/src}/geo/LatLng.js +0 -0
- data/vendor/{src → protovis/src}/geo/Projection.js +0 -0
- data/vendor/{src → protovis/src}/geo/Projections.js +0 -0
- data/vendor/{src → protovis/src}/lang/Array.js +0 -0
- data/vendor/{src → protovis/src}/lang/init.js +0 -0
- data/vendor/{src → protovis/src}/layout/Arc.js +0 -0
- data/vendor/{src → protovis/src}/layout/Bullet.js +0 -0
- data/vendor/{src → protovis/src}/layout/Cluster.js +0 -0
- data/vendor/{src → protovis/src}/layout/Force.js +0 -0
- data/vendor/{src → protovis/src}/layout/Grid.js +0 -0
- data/vendor/{src → protovis/src}/layout/Hierarchy.js +0 -0
- data/vendor/{src → protovis/src}/layout/Horizon.js +0 -0
- data/vendor/{src → protovis/src}/layout/Indent.js +0 -0
- data/vendor/{src → protovis/src}/layout/Layout.js +0 -0
- data/vendor/{src → protovis/src}/layout/Matrix.js +0 -0
- data/vendor/{src → protovis/src}/layout/Network.js +0 -0
- data/vendor/{src → protovis/src}/layout/Pack.js +0 -0
- data/vendor/{src → protovis/src}/layout/Partition.js +0 -0
- data/vendor/{src → protovis/src}/layout/Rollup.js +0 -0
- data/vendor/{src → protovis/src}/layout/Stack.js +0 -0
- data/vendor/{src → protovis/src}/layout/Tree.js +0 -0
- data/vendor/{src → protovis/src}/layout/Treemap.js +0 -0
- data/vendor/{src → protovis/src}/mark/Anchor.js +0 -0
- data/vendor/{src → protovis/src}/mark/Area.js +0 -0
- data/vendor/{src → protovis/src}/mark/Bar.js +0 -0
- data/vendor/{src → protovis/src}/mark/Dot.js +0 -0
- data/vendor/{src → protovis/src}/mark/Ease.js +0 -0
- data/vendor/{src → protovis/src}/mark/Image.js +0 -0
- data/vendor/{src → protovis/src}/mark/Label.js +0 -0
- data/vendor/{src → protovis/src}/mark/Line.js +0 -0
- data/vendor/{src → protovis/src}/mark/Mark.js +0 -0
- data/vendor/{src → protovis/src}/mark/Panel.js +0 -0
- data/vendor/{src → protovis/src}/mark/Rule.js +0 -0
- data/vendor/{src → protovis/src}/mark/Transient.js +0 -0
- data/vendor/{src → protovis/src}/mark/Transition.js +0 -0
- data/vendor/{src → protovis/src}/mark/Wedge.js +0 -0
- data/vendor/{src → protovis/src}/physics/BoundConstraint.js +0 -0
- data/vendor/{src → protovis/src}/physics/ChargeForce.js +0 -0
- data/vendor/{src → protovis/src}/physics/CollisionConstraint.js +0 -0
- data/vendor/{src → protovis/src}/physics/Constraint.js +0 -0
- data/vendor/{src → protovis/src}/physics/DragForce.js +0 -0
- data/vendor/{src → protovis/src}/physics/Force.js +0 -0
- data/vendor/{src → protovis/src}/physics/Particle.js +0 -0
- data/vendor/{src → protovis/src}/physics/PositionConstraint.js +0 -0
- data/vendor/{src → protovis/src}/physics/Quadtree.js +0 -0
- data/vendor/{src → protovis/src}/physics/Simulation.js +0 -0
- data/vendor/{src → protovis/src}/physics/SpringForce.js +0 -0
- data/vendor/{src → protovis/src}/pv-internals.js +0 -0
- data/vendor/{src → protovis/src}/pv.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgArea.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgBar.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgCurve.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgDot.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgImage.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgLabel.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgLine.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgPanel.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgRule.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgScene.js +0 -0
- data/vendor/{src → protovis/src}/scene/SvgWedge.js +0 -0
- data/vendor/{src → protovis/src}/text/DateFormat.js +0 -0
- data/vendor/{src → protovis/src}/text/Format.js +0 -0
- data/vendor/{src → protovis/src}/text/NumberFormat.js +0 -0
- data/vendor/{src → protovis/src}/text/TimeFormat.js +0 -0
- metadata +132 -426
- metadata.gz.sig +2 -0
- data/examples/crimea-line.rb +0 -64
- data/vendor/FUTURE +0 -62
- data/vendor/Makefile +0 -138
- data/vendor/TODO +0 -22
- data/vendor/examples/antibiotics/antibiotics-scatter.html +0 -113
- data/vendor/examples/antibiotics/antibiotics.html +0 -140
- data/vendor/examples/antibiotics/antibiotics.js +0 -20
- data/vendor/examples/barley/barley.html +0 -102
- data/vendor/examples/barley/barley.js +0 -122
- data/vendor/examples/cars/cars.html +0 -90
- data/vendor/examples/cars/cars.js +0 -408
- data/vendor/examples/clock/clock.html +0 -91
- data/vendor/examples/crimea/crimea-grouped-bar.html +0 -65
- data/vendor/examples/crimea/crimea-line.html +0 -61
- data/vendor/examples/crimea/crimea-stacked-area.html +0 -61
- data/vendor/examples/crimea/crimea-stacked-bar.html +0 -60
- data/vendor/examples/crimea/crimea.html +0 -100
- data/vendor/examples/crimea/crimea.js +0 -33
- data/vendor/examples/downloadify/LICENSE.txt +0 -22
- data/vendor/examples/downloadify/download.png +0 -0
- data/vendor/examples/downloadify/downloadify.html +0 -57
- data/vendor/examples/downloadify/downloadify.min.js +0 -3
- data/vendor/examples/downloadify/downloadify.swf +0 -0
- data/vendor/examples/downloadify/swfobject.js +0 -4
- data/vendor/examples/ex.css +0 -17
- data/vendor/examples/eyes/eyes.html +0 -53
- data/vendor/examples/eyes/matrix.html +0 -44
- data/vendor/examples/flowers/flowers.html +0 -109
- data/vendor/examples/flowers/flowers.js +0 -154
- data/vendor/examples/group-stack/group-stack.html +0 -79
- data/vendor/examples/group-stack/headcount.js +0 -23
- data/vendor/examples/hotel/hotel.html +0 -76
- data/vendor/examples/hotel/hotel.js +0 -245
- data/vendor/examples/jobs/jobs.html +0 -71
- data/vendor/examples/jobs/jobs.js +0 -1024
- data/vendor/examples/jquery-1.4.2.min.js +0 -154
- data/vendor/examples/nba/nba.html +0 -83
- data/vendor/examples/nba/nba.js +0 -53
- data/vendor/examples/nba/nba2.html +0 -82
- data/vendor/examples/sankey/gdp2009.js +0 -184
- data/vendor/examples/sankey/sankey.html +0 -77
- data/vendor/examples/slider/cell.html +0 -112
- data/vendor/examples/slider/cell.js +0 -31
- data/vendor/examples/slider/horizon.html +0 -85
- data/vendor/examples/slider/jquery-ui-1.8rc3.custom.min.js +0 -71
- data/vendor/examples/slider/slider.html +0 -50
- data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/vendor/examples/slider/ui-lightness/images/ui-icons_222222_256x240.png +0 -2
- data/vendor/examples/slider/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -2
- data/vendor/examples/slider/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -2
- data/vendor/examples/slider/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -2
- data/vendor/examples/slider/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -2
- data/vendor/examples/slider/ui-lightness/jquery-ui-1.8rc3.custom.css +0 -302
- data/vendor/examples/tipsy/jquery.tipsy.js +0 -198
- data/vendor/examples/tipsy/tipsy-bar.html +0 -65
- data/vendor/examples/tipsy/tipsy-line.html +0 -67
- data/vendor/examples/tipsy/tipsy.css +0 -12
- data/vendor/examples/tipsy/tipsy.gif +0 -0
- data/vendor/examples/tipsy/tipsy.js +0 -66
- data/vendor/examples/weather/weather.html +0 -86
- data/vendor/examples/weather/weather.js +0 -42
- data/vendor/examples/wheat/wheat.html +0 -130
- data/vendor/examples/wheat/wheat.js +0 -70
- data/vendor/lib/google-compiler/COPYING +0 -202
- data/vendor/lib/google-compiler/README +0 -224
- data/vendor/lib/google-compiler/compiler-20100201.jar +0 -0
- data/vendor/protovis-d3.3.js +0 -15726
- data/vendor/test1.html +0 -30
- data/vendor/tests/behavior/drag-events.html +0 -47
- data/vendor/tests/behavior/drag.html +0 -32
- data/vendor/tests/behavior/drag2.html +0 -33
- data/vendor/tests/behavior/point-area-stacked.html +0 -73
- data/vendor/tests/behavior/point-area-stacked2.html +0 -70
- data/vendor/tests/behavior/point-area.html +0 -67
- data/vendor/tests/behavior/point-bar.html +0 -62
- data/vendor/tests/behavior/point-dot.html +0 -60
- data/vendor/tests/behavior/point-line.html +0 -62
- data/vendor/tests/behavior/point-lines-grid.html +0 -65
- data/vendor/tests/behavior/point-lines.html +0 -61
- data/vendor/tests/behavior/point-wedge.html +0 -43
- data/vendor/tests/behavior/resize.html +0 -69
- data/vendor/tests/behavior/select.html +0 -37
- data/vendor/tests/bzr.js +0 -62
- data/vendor/tests/center.js +0 -13
- data/vendor/tests/data/deviation.html +0 -54
- data/vendor/tests/data/histogram-discrete.html +0 -50
- data/vendor/tests/data/histogram.html +0 -56
- data/vendor/tests/data/log-adjusted.html +0 -48
- data/vendor/tests/data/log-ceil.html +0 -48
- data/vendor/tests/data/log-floor.html +0 -48
- data/vendor/tests/data/log-symmetric.html +0 -48
- data/vendor/tests/data/log.html +0 -48
- data/vendor/tests/data/max-index.html +0 -36
- data/vendor/tests/data/max.html +0 -36
- data/vendor/tests/data/min-index.html +0 -36
- data/vendor/tests/data/min.html +0 -36
- data/vendor/tests/data/ordinal-split-banded.html +0 -45
- data/vendor/tests/data/ordinal-split-banded2.html +0 -45
- data/vendor/tests/data/ordinal-split-flush.html +0 -51
- data/vendor/tests/data/ordinal-split.html +0 -51
- data/vendor/tests/data/range.html +0 -105
- data/vendor/tests/data/scale-date.html +0 -46
- data/vendor/tests/data/scale-date2.html +0 -38
- data/vendor/tests/data/scale-date3.html +0 -38
- data/vendor/tests/data/scale-date4.html +0 -38
- data/vendor/tests/data/scale-degenerate.html +0 -143
- data/vendor/tests/data/scale-linear.html +0 -59
- data/vendor/tests/data/scale-log.html +0 -60
- data/vendor/tests/data/scale-log2.html +0 -60
- data/vendor/tests/data/scale-log3.html +0 -60
- data/vendor/tests/data/scale-log4.html +0 -60
- data/vendor/tests/data/scale-log5.html +0 -60
- data/vendor/tests/data/scale-log6.html +0 -60
- data/vendor/tests/data/scale-quantile.html +0 -47
- data/vendor/tests/data/scale-quantile2.html +0 -50
- data/vendor/tests/data/scale-quantile3.html +0 -48
- data/vendor/tests/data/scale-root.html +0 -60
- data/vendor/tests/data/scale-root2.html +0 -39
- data/vendor/tests/data/scale-tick-format.html +0 -54
- data/vendor/tests/data/scale-ticks.html +0 -45
- data/vendor/tests/data/sum.html +0 -42
- data/vendor/tests/data/variance.html +0 -42
- data/vendor/tests/diamond.js +0 -40
- data/vendor/tests/flare-imports.js +0 -222
- data/vendor/tests/flare.js +0 -284
- data/vendor/tests/geo/countries-hires.js +0 -257
- data/vendor/tests/geo/countries-lores.js +0 -197
- data/vendor/tests/geo/population.js +0 -250
- data/vendor/tests/geo/scale-aitoff.html +0 -58
- data/vendor/tests/geo/scale-gall-peters.html +0 -56
- data/vendor/tests/geo/scale-hammer.html +0 -58
- data/vendor/tests/geo/scale-identity.html +0 -56
- data/vendor/tests/geo/scale-mercator.html +0 -56
- data/vendor/tests/geo/scale-sinusoidal.html +0 -57
- data/vendor/tests/geo/scale-smart-domain.html +0 -58
- data/vendor/tests/geo/scale.html +0 -55
- data/vendor/tests/geo/scale2.html +0 -40
- data/vendor/tests/geo/us-states.js +0 -61
- data/vendor/tests/heatmap.js +0 -63
- data/vendor/tests/lang/globals.html +0 -41
- data/vendor/tests/lang/init.html +0 -31
- data/vendor/tests/layers.js +0 -28
- data/vendor/tests/layout/arc-directed.html +0 -33
- data/vendor/tests/layout/arc-radial.html +0 -36
- data/vendor/tests/layout/arc-undirected.html +0 -32
- data/vendor/tests/layout/arc.html +0 -33
- data/vendor/tests/layout/arc2.html +0 -32
- data/vendor/tests/layout/bullet-multiples.html +0 -60
- data/vendor/tests/layout/bullet.html +0 -45
- data/vendor/tests/layout/bullets.js +0 -37
- data/vendor/tests/layout/cluster-fill-group.html +0 -24
- data/vendor/tests/layout/cluster-fill.html +0 -28
- data/vendor/tests/layout/cluster-partition-radial-fill.html +0 -43
- data/vendor/tests/layout/cluster-radial-fill-radius.html +0 -26
- data/vendor/tests/layout/cluster-radial-fill.html +0 -29
- data/vendor/tests/layout/cluster-radial-group-fill.html +0 -30
- data/vendor/tests/layout/cluster-radial-radius.html +0 -30
- data/vendor/tests/layout/cluster-radial.html +0 -28
- data/vendor/tests/layout/cluster-radial2.html +0 -33
- data/vendor/tests/layout/cluster.html +0 -34
- data/vendor/tests/layout/cluster2.html +0 -32
- data/vendor/tests/layout/force-toggle.html +0 -46
- data/vendor/tests/layout/force.html +0 -45
- data/vendor/tests/layout/force2.html +0 -58
- data/vendor/tests/layout/force3.html +0 -41
- data/vendor/tests/layout/force4.html +0 -45
- data/vendor/tests/layout/force5.html +0 -53
- data/vendor/tests/layout/grid-cols.html +0 -31
- data/vendor/tests/layout/grid-heatmap.html +0 -25
- data/vendor/tests/layout/grid-rows.html +0 -31
- data/vendor/tests/layout/grid.html +0 -34
- data/vendor/tests/layout/horizon-color.html +0 -31
- data/vendor/tests/layout/horizon.html +0 -31
- data/vendor/tests/layout/indent-toggle.html +0 -62
- data/vendor/tests/layout/indent.html +0 -25
- data/vendor/tests/layout/indent2.html +0 -33
- data/vendor/tests/layout/matrix-sort.html +0 -28
- data/vendor/tests/layout/matrix.html +0 -35
- data/vendor/tests/layout/network.html +0 -43
- data/vendor/tests/layout/pack-bubble.html +0 -45
- data/vendor/tests/layout/pack.html +0 -26
- data/vendor/tests/layout/pack2.html +0 -32
- data/vendor/tests/layout/partition-fill.html +0 -27
- data/vendor/tests/layout/partition-fill2.html +0 -22
- data/vendor/tests/layout/partition-fill3.html +0 -27
- data/vendor/tests/layout/partition-radial-fill-radius.html +0 -25
- data/vendor/tests/layout/partition-radial-fill.html +0 -26
- data/vendor/tests/layout/partition-radial-fill2.html +0 -23
- data/vendor/tests/layout/partition-radial-fill3.html +0 -29
- data/vendor/tests/layout/partition-radial-radius.html +0 -29
- data/vendor/tests/layout/partition-radial.html +0 -30
- data/vendor/tests/layout/partition-radial2.html +0 -33
- data/vendor/tests/layout/partition.html +0 -33
- data/vendor/tests/layout/partition2.html +0 -32
- data/vendor/tests/layout/rollup.html +0 -50
- data/vendor/tests/layout/stack-empty.html +0 -27
- data/vendor/tests/layout/stack-expand.html +0 -41
- data/vendor/tests/layout/stack-reverse.html +0 -42
- data/vendor/tests/layout/stack-right.html +0 -42
- data/vendor/tests/layout/stack-rule.html +0 -61
- data/vendor/tests/layout/stack-visible.html +0 -43
- data/vendor/tests/layout/stack.html +0 -53
- data/vendor/tests/layout/tree-radial.html +0 -31
- data/vendor/tests/layout/tree-radial2.html +0 -34
- data/vendor/tests/layout/tree-toggle.html +0 -36
- data/vendor/tests/layout/tree.html +0 -31
- data/vendor/tests/layout/tree2.html +0 -35
- data/vendor/tests/layout/treemap-hierarchy.html +0 -40
- data/vendor/tests/layout/treemap-margin.html +0 -26
- data/vendor/tests/layout/treemap-round.html +0 -40
- data/vendor/tests/layout/treemap-slice.html +0 -34
- data/vendor/tests/layout/treemap.html +0 -37
- data/vendor/tests/life.js +0 -212
- data/vendor/tests/mark/anchor.html +0 -25
- data/vendor/tests/mark/area-anchor-chain.html +0 -42
- data/vendor/tests/mark/area-anchor-line.html +0 -57
- data/vendor/tests/mark/area-anchor-stack.html +0 -35
- data/vendor/tests/mark/area-anchor.html +0 -43
- data/vendor/tests/mark/area-anchor2.html +0 -33
- data/vendor/tests/mark/area-cardinal.html +0 -57
- data/vendor/tests/mark/area-monotone.html +0 -57
- data/vendor/tests/mark/area-segmented-basis.html +0 -30
- data/vendor/tests/mark/area-segmented-cardinal.html +0 -30
- data/vendor/tests/mark/area-segmented-monotone.html +0 -30
- data/vendor/tests/mark/area-segmented-step.html +0 -44
- data/vendor/tests/mark/area-segmented.html +0 -29
- data/vendor/tests/mark/area-stacked-cardinal.html +0 -54
- data/vendor/tests/mark/area-stacked-monotone.html +0 -54
- data/vendor/tests/mark/area-stacked.html +0 -53
- data/vendor/tests/mark/area-step.html +0 -43
- data/vendor/tests/mark/area-zero.html +0 -32
- data/vendor/tests/mark/area.html +0 -57
- data/vendor/tests/mark/bar-anchor-stack.html +0 -51
- data/vendor/tests/mark/bar-anchor.html +0 -44
- data/vendor/tests/mark/bar-column-grouped.html +0 -63
- data/vendor/tests/mark/bar-column-stacked.html +0 -56
- data/vendor/tests/mark/bar-column.html +0 -54
- data/vendor/tests/mark/bar-grouped.html +0 -63
- data/vendor/tests/mark/bar-stacked.html +0 -57
- data/vendor/tests/mark/bar.html +0 -54
- data/vendor/tests/mark/cursor.html +0 -41
- data/vendor/tests/mark/def-type.html +0 -23
- data/vendor/tests/mark/dot-anchor.html +0 -33
- data/vendor/tests/mark/dot-radius.html +0 -22
- data/vendor/tests/mark/dot-stroke.html +0 -43
- data/vendor/tests/mark/dot.html +0 -52
- data/vendor/tests/mark/dot2.html +0 -61
- data/vendor/tests/mark/ease.html +0 -90
- data/vendor/tests/mark/event-dblclick.html +0 -30
- data/vendor/tests/mark/event-prototype.html +0 -45
- data/vendor/tests/mark/event-render.html +0 -45
- data/vendor/tests/mark/event.html +0 -24
- data/vendor/tests/mark/image-color-inherit.html +0 -33
- data/vendor/tests/mark/image-color.html +0 -35
- data/vendor/tests/mark/image-color2.html +0 -35
- data/vendor/tests/mark/image-heatmap.html +0 -29
- data/vendor/tests/mark/image.html +0 -32
- data/vendor/tests/mark/label-break.html +0 -54
- data/vendor/tests/mark/label-decoration.html +0 -22
- data/vendor/tests/mark/label-events.html +0 -32
- data/vendor/tests/mark/line-anchor.html +0 -42
- data/vendor/tests/mark/line-basis.html +0 -54
- data/vendor/tests/mark/line-brownian.html +0 -57
- data/vendor/tests/mark/line-cardinal.html +0 -77
- data/vendor/tests/mark/line-catmull-rom.html +0 -78
- data/vendor/tests/mark/line-curve.html +0 -65
- data/vendor/tests/mark/line-eccentricity.html +0 -39
- data/vendor/tests/mark/line-fill.html +0 -24
- data/vendor/tests/mark/line-join.html +0 -51
- data/vendor/tests/mark/line-monotone-non-monotone.html +0 -53
- data/vendor/tests/mark/line-monotone-two-way.html +0 -61
- data/vendor/tests/mark/line-monotone.html +0 -53
- data/vendor/tests/mark/line-polar.html +0 -36
- data/vendor/tests/mark/line-segmented-basis.html +0 -57
- data/vendor/tests/mark/line-segmented-cardinal.html +0 -80
- data/vendor/tests/mark/line-segmented-join.html +0 -52
- data/vendor/tests/mark/line-segmented-monotone.html +0 -56
- data/vendor/tests/mark/line-segmented-polar.html +0 -30
- data/vendor/tests/mark/line-segmented-step.html +0 -41
- data/vendor/tests/mark/line-segmented-step2.html +0 -32
- data/vendor/tests/mark/line-segmented.html +0 -30
- data/vendor/tests/mark/line-step.html +0 -39
- data/vendor/tests/mark/line-tension.html +0 -59
- data/vendor/tests/mark/line.html +0 -51
- data/vendor/tests/mark/panel-anchor.html +0 -37
- data/vendor/tests/mark/panel-anchor2.html +0 -31
- data/vendor/tests/mark/panel-anchor3.html +0 -22
- data/vendor/tests/mark/panel-anchor4.html +0 -28
- data/vendor/tests/mark/panel-anchor5.html +0 -28
- data/vendor/tests/mark/panel-append.html +0 -29
- data/vendor/tests/mark/panel-canvas.html +0 -107
- data/vendor/tests/mark/panel-fill.html +0 -50
- data/vendor/tests/mark/panel-mouse.html +0 -53
- data/vendor/tests/mark/panel-transform.html +0 -67
- data/vendor/tests/mark/property-cast.html +0 -24
- data/vendor/tests/mark/render-partial.html +0 -42
- data/vendor/tests/mark/rule-anchor.html +0 -29
- data/vendor/tests/mark/title.html +0 -41
- data/vendor/tests/mark/transition-anchor.html +0 -47
- data/vendor/tests/mark/transition-wedge.html +0 -47
- data/vendor/tests/mark/transition.html +0 -106
- data/vendor/tests/mark/wedge-donut.html +0 -35
- data/vendor/tests/mark/wedge-implied.html +0 -42
- data/vendor/tests/mark/wedge-pie.html +0 -37
- data/vendor/tests/mark/wedge-ring.html +0 -27
- data/vendor/tests/miserables.js +0 -348
- data/vendor/tests/physics/dorling.html +0 -70
- data/vendor/tests/physics/simulation.html +0 -56
- data/vendor/tests/social.js +0 -28
- data/vendor/tests/stanford.png +0 -0
- data/vendor/tests/style.css +0 -5
- data/vendor/tests/testify.css +0 -29
- data/vendor/tests/testify.js +0 -16
- data/vendor/tests/text/format-number.html +0 -75
data/lib/rubyvis/color/colors.rb
CHANGED
@@ -11,15 +11,15 @@ module Rubyvis
|
|
11
11
|
def pv
|
12
12
|
Rubyvis
|
13
13
|
end
|
14
|
-
|
14
|
+
def self.category10(*arguments)
|
15
15
|
scale = pv.colors(
|
16
|
-
|
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
|
-
|
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
|
data/lib/rubyvis/color/ramp.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
|
data/lib/rubyvis/format.rb
CHANGED
@@ -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'
|
data/lib/rubyvis/format/date.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/rubyvis/internals.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
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
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
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=
|
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
|
-
|
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
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
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
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
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
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
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
|
-
|
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=
|
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(
|
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
|