rubyvis 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +16 -0
  3. data/Manifest.txt +61 -0
  4. data/README.txt +9 -7
  5. data/Rakefile +1 -1
  6. data/lib/rubyvis.rb +3 -17
  7. data/lib/rubyvis/color/color.rb +11 -13
  8. data/lib/rubyvis/flatten.rb +5 -7
  9. data/lib/rubyvis/layout/stack.rb +15 -10
  10. data/lib/rubyvis/mark.rb +10 -2
  11. data/lib/rubyvis/mark/area.rb +5 -3
  12. data/lib/rubyvis/mark/line.rb +4 -3
  13. data/lib/rubyvis/mark/panel.rb +8 -3
  14. data/lib/rubyvis/mark/rule.rb +1 -0
  15. data/lib/rubyvis/scene/svg_area.rb +17 -17
  16. data/lib/rubyvis/scene/svg_curve.rb +8 -5
  17. data/lib/rubyvis/scene/svg_line.rb +32 -29
  18. data/lib/rubyvis/scene/svg_scene.rb +3 -5
  19. data/lib/rubyvis/scene/svg_wedge.rb +4 -3
  20. data/lib/rubyvis/vector.rb +104 -0
  21. data/spec/anchor_spec.rb +29 -0
  22. data/spec/area_spec.rb +83 -0
  23. data/spec/bar_spec.rb +3 -0
  24. data/spec/color_spec.rb +13 -1
  25. data/spec/dot_spec.rb +41 -0
  26. data/spec/fixtures/anchor.html +25 -0
  27. data/spec/fixtures/anchor.svg +1 -0
  28. data/spec/fixtures/area-segmented.html +29 -0
  29. data/spec/fixtures/area_interpolation.html +66 -0
  30. data/spec/fixtures/area_interpolation.svg +1 -0
  31. data/spec/fixtures/area_segmented.svg +1 -0
  32. data/spec/fixtures/dot-anchor.html +33 -0
  33. data/spec/fixtures/dot_anchor.svg +1 -0
  34. data/spec/fixtures/layers.js +28 -0
  35. data/spec/fixtures/layout_arc.svg +1 -0
  36. data/spec/fixtures/layout_cluster.html +39 -0
  37. data/spec/fixtures/layout_cluster.svg +1 -0
  38. data/spec/fixtures/layout_cluster_left_group_2.html +39 -0
  39. data/spec/fixtures/layout_cluster_left_group_2.svg +1 -0
  40. data/spec/fixtures/layout_grid.html +34 -0
  41. data/spec/fixtures/layout_grid.svg +1 -0
  42. data/spec/fixtures/layout_horizon.svg +24 -0
  43. data/spec/fixtures/layout_indent.html +39 -0
  44. data/spec/fixtures/layout_indent.svg +1 -0
  45. data/spec/fixtures/layout_matrix.svg +1 -0
  46. data/spec/fixtures/layout_pack.html +38 -0
  47. data/spec/fixtures/layout_pack.svg +1 -0
  48. data/spec/fixtures/layout_partition_fill.html +40 -0
  49. data/spec/fixtures/layout_partition_fill.svg +32 -0
  50. data/spec/fixtures/layout_tree_orient_left.html +36 -0
  51. data/spec/fixtures/layout_tree_orient_left.svg +1 -0
  52. data/spec/fixtures/layout_tree_orient_radial_breadth_20.html +39 -0
  53. data/spec/fixtures/layout_tree_orient_radial_breadth_20.svg +1 -0
  54. data/spec/fixtures/layout_tree_orient_top.svg +1 -0
  55. data/spec/fixtures/layout_treemap.svg +1 -0
  56. data/spec/fixtures/line_interpolation.html +63 -0
  57. data/spec/fixtures/line_interpolation.svg +1 -0
  58. data/spec/fixtures/line_interpolation_segmented.html +65 -0
  59. data/spec/fixtures/line_interpolation_segmented.svg +1 -0
  60. data/spec/fixtures/protovis-r3.3.js +287 -0
  61. data/spec/fixtures/rule-anchor.html +33 -0
  62. data/spec/fixtures/rule_anchor.svg +1 -0
  63. data/spec/fixtures/stack-expand.html +41 -0
  64. data/spec/fixtures/stack-silohouette.html +41 -0
  65. data/spec/fixtures/stack-wiggle.html +41 -0
  66. data/spec/fixtures/stack_expand.svg +1 -0
  67. data/spec/fixtures/stack_silohouette.svg +1 -0
  68. data/spec/fixtures/stack_wiggle.svg +1 -0
  69. data/spec/fixtures/svgscene.html +26 -0
  70. data/spec/fixtures/wedge-anchor.html +33 -0
  71. data/spec/fixtures/wedge-donut.html +35 -0
  72. data/spec/fixtures/wedge_anchor.svg +1 -0
  73. data/spec/fixtures/wedge_donut.svg +1 -0
  74. data/spec/flatten_spec.rb +47 -0
  75. data/spec/layout_arc_spec.rb +7 -26
  76. data/spec/layout_cluster_spec.rb +52 -0
  77. data/spec/layout_grid_spec.rb +40 -0
  78. data/spec/layout_horizon_spec.rb +6 -25
  79. data/spec/layout_indent_spec.rb +53 -0
  80. data/spec/layout_matrix_spec.rb +25 -52
  81. data/spec/layout_pack_spec.rb +49 -0
  82. data/spec/layout_partition_spec.rb +45 -0
  83. data/spec/layout_stack_spec.rb +60 -0
  84. data/spec/layout_tree_spec.rb +56 -0
  85. data/spec/layout_treemap_spec.rb +41 -0
  86. data/spec/line_spec.rb +118 -0
  87. data/spec/mark_spec.rb +4 -0
  88. data/spec/panel_spec.rb +12 -1
  89. data/spec/rule_spec.rb +34 -0
  90. data/spec/spec_helper.rb +158 -3
  91. data/spec/vector_spec.rb +36 -0
  92. data/spec/wedge_spec.rb +66 -0
  93. metadata +67 -14
  94. metadata.gz.sig +0 -0
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,19 @@
1
+ === 0.4.0 / 2011-01-03
2
+
3
+ Massive bug fix. Please, update ASAP
4
+
5
+ * Implemented Vector, used on segmented lines
6
+ * Bug fix: Segmented areas with basis, cardinal and monotone interpolation was parsed using linear interpolation
7
+ * Bug fix: Incorrect color when using hsl with decimal h
8
+ * Bug fix: Segmented areas doesn't change color
9
+ * Bug fix: Wedge without inner radius return incorrect path
10
+ * Bug fix: Stack layout with 'inside-out' order crash.
11
+ * Bug fix: Incorrect marks properties evaluation order
12
+ * Bug fix: Segmented lines raises an Exception
13
+ * New specs: Flatten, Grid, Dot, Vector, Rule, Cluster, Partition, Wedge, Indent, Tree, Treemap
14
+ * Improved specs: Area, Line, Panel
15
+ * Deleted dependence of Rubyvis.document. Each panel without parent have an independent REXML::Document
16
+
1
17
  === 0.3.6 / 2010-12-28
2
18
 
3
19
  * Matrix layout implemented. Example and spec available.
data/Manifest.txt CHANGED
@@ -105,25 +105,84 @@ lib/rubyvis/scene/svg_scene.rb
105
105
  lib/rubyvis/scene/svg_wedge.rb
106
106
  lib/rubyvis/sceneelement.rb
107
107
  lib/rubyvis/transform.rb
108
+ lib/rubyvis/vector.rb
108
109
  spec/anchor_spec.rb
109
110
  spec/area_spec.rb
110
111
  spec/bar_spec.rb
111
112
  spec/color_spec.rb
112
113
  spec/dom_spec.rb
114
+ spec/dot_spec.rb
115
+ spec/fixtures/anchor.html
116
+ spec/fixtures/anchor.svg
117
+ spec/fixtures/area-segmented.html
118
+ spec/fixtures/area_interpolation.html
119
+ spec/fixtures/area_interpolation.svg
120
+ spec/fixtures/area_segmented.svg
121
+ spec/fixtures/dot-anchor.html
122
+ spec/fixtures/dot_anchor.svg
123
+ spec/fixtures/layers.js
124
+ spec/fixtures/layout_arc.svg
125
+ spec/fixtures/layout_cluster.html
126
+ spec/fixtures/layout_cluster.svg
127
+ spec/fixtures/layout_cluster_left_group_2.html
128
+ spec/fixtures/layout_cluster_left_group_2.svg
129
+ spec/fixtures/layout_grid.html
130
+ spec/fixtures/layout_grid.svg
131
+ spec/fixtures/layout_horizon.svg
132
+ spec/fixtures/layout_indent.html
133
+ spec/fixtures/layout_indent.svg
134
+ spec/fixtures/layout_matrix.svg
135
+ spec/fixtures/layout_pack.html
136
+ spec/fixtures/layout_pack.svg
137
+ spec/fixtures/layout_partition_fill.html
138
+ spec/fixtures/layout_partition_fill.svg
139
+ spec/fixtures/layout_tree_orient_left.html
140
+ spec/fixtures/layout_tree_orient_left.svg
141
+ spec/fixtures/layout_tree_orient_radial_breadth_20.html
142
+ spec/fixtures/layout_tree_orient_radial_breadth_20.svg
143
+ spec/fixtures/layout_tree_orient_top.svg
144
+ spec/fixtures/layout_treemap.svg
145
+ spec/fixtures/line_interpolation.html
146
+ spec/fixtures/line_interpolation.svg
147
+ spec/fixtures/line_interpolation_segmented.html
148
+ spec/fixtures/line_interpolation_segmented.svg
149
+ spec/fixtures/protovis-r3.3.js
150
+ spec/fixtures/rule-anchor.html
151
+ spec/fixtures/rule_anchor.svg
152
+ spec/fixtures/stack-expand.html
153
+ spec/fixtures/stack-silohouette.html
154
+ spec/fixtures/stack-wiggle.html
155
+ spec/fixtures/stack_expand.svg
156
+ spec/fixtures/stack_silohouette.svg
157
+ spec/fixtures/stack_wiggle.svg
158
+ spec/fixtures/svgscene.html
159
+ spec/fixtures/wedge-anchor.html
160
+ spec/fixtures/wedge-donut.html
161
+ spec/fixtures/wedge_anchor.svg
162
+ spec/fixtures/wedge_donut.svg
163
+ spec/flatten_spec.rb
113
164
  spec/histogram_spec.rb
114
165
  spec/internal_spec.rb
115
166
  spec/javascript_behaviour_spec.rb
116
167
  spec/label_spec.rb
117
168
  spec/layout_arc_spec.rb
169
+ spec/layout_cluster_spec.rb
170
+ spec/layout_grid_spec.rb
118
171
  spec/layout_horizon_spec.rb
172
+ spec/layout_indent_spec.rb
119
173
  spec/layout_matrix_spec.rb
174
+ spec/layout_pack_spec.rb
175
+ spec/layout_partition_spec.rb
120
176
  spec/layout_stack_spec.rb
177
+ spec/layout_tree_spec.rb
178
+ spec/layout_treemap_spec.rb
121
179
  spec/line_spec.rb
122
180
  spec/mark_spec.rb
123
181
  spec/nest_spec.rb
124
182
  spec/panel_spec.rb
125
183
  spec/readme_spec.rb
126
184
  spec/ruby_api_spec.rb
185
+ spec/rule_spec.rb
127
186
  spec/scale_linear_datetime_spec.rb
128
187
  spec/scale_linear_spec.rb
129
188
  spec/scale_log_spec.rb
@@ -131,6 +190,8 @@ spec/scale_ordinal_spec.rb
131
190
  spec/scale_spec.rb
132
191
  spec/spec.opts
133
192
  spec/spec_helper.rb
193
+ spec/vector_spec.rb
194
+ spec/wedge_spec.rb
134
195
  vendor/protovis/protovis-r3.3.js
135
196
  vendor/protovis/src/behavior/Behavior.js
136
197
  vendor/protovis/src/behavior/Drag.js
data/README.txt CHANGED
@@ -4,16 +4,16 @@
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- Ruby port of Protovis[http://vis.stanford.edu/protovis/], a great visualization toolkit
7
+ Ruby port of Protovis[http://vis.stanford.edu/protovis/], a Javascript visualization toolkit.
8
8
 
9
9
  == FEATURES/PROBLEMS:
10
10
 
11
- This library implements almost completely the core API of protovis, including all static marks, SVG builder class and data classes.
11
+ This library implements almost completely core API of protovis, including all static marks, SVG builder class and data classes. Spec coverage is near 90%
12
12
 
13
13
  Implemented:
14
14
 
15
15
  * Marks: All, except transient and transitions.
16
- * Layout: Cluster, Grid, Horizon, Indent, Pack, Partition, Stack, Tree and Treemap. To implement: Bullet, Arc, Force, Matrix, Rollup.
16
+ * Layout: Arc, Cluster, Grid, Horizon, Indent, Matrix, Pack, Partition, Stack, Tree and Treemap. To implement: Bullet, Force, and Rollup.
17
17
 
18
18
  Using protovis examples[http://vis.stanford.edu/protovis/ex/] as reference
19
19
 
@@ -35,8 +35,8 @@ Using protovis examples[http://vis.stanford.edu/protovis/ex/] as reference
35
35
  * Treemap
36
36
  * Networks:
37
37
  * Arc
38
-
39
-
38
+ * Matrix
39
+
40
40
  I try to maintain, when posible, complete compatibility with Javascript API, including camel case naming of functions. Johnson [http://github.com/jbarnette/johnson] - the lovely Javascript wrapper inside Ruby embrace - is our friend to test implementation of basic object.
41
41
 
42
42
  User could use +pv+ freely, cause is defined as a global method which call Rubyvis.
@@ -48,6 +48,7 @@ User could use +pv+ freely, cause is defined as a global method which call Rubyv
48
48
  * color/Color.js
49
49
  * color/Colors.js
50
50
  * data/Arrays.js
51
+ * data/Flatten.js
51
52
  * data/Histogram.js
52
53
  * data/Numbers.js
53
54
  * data/LinearScale.js
@@ -57,12 +58,13 @@ User could use +pv+ freely, cause is defined as a global method which call Rubyv
57
58
  * data/OrdinalScale.js
58
59
  * data/Scale.js
59
60
  * layout/Arc.js
60
- * layout/Layout.js
61
61
  * layout/Cluster.js
62
62
  * layout/Grid.js
63
63
  * layout/Hierarchy.js
64
64
  * layout/Horizon.js
65
65
  * layout/Indent.js
66
+ * layout/Layout.js
67
+ * layout/Matrix.js
66
68
  * layout/Network.js
67
69
  * layout/Pack.js
68
70
  * layout/Partition.js
@@ -144,7 +146,7 @@ Tested on Ruby 1.8.7, 1.9.1, 1.9.2-p0 and ruby-head (future 1.9.3)
144
146
 
145
147
  == INSTALL:
146
148
 
147
- $ sudo gem install rubyvis
149
+ $ gem install rubyvis
148
150
 
149
151
  == LICENSE:
150
152
 
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ h=Hoe.spec 'rubyvis' do
18
18
  self.version=Rubyvis::VERSION
19
19
  self.extra_dev_deps << ["coderay",">=0"] << ["haml",">=0"] << ["nokogiri", ">=0"] << ["rspec",">=2.0"]
20
20
  end
21
-
21
+ desc "Publicar docs en rubyforge"
22
22
  task :publicar_docs => [:clean, :docs] do
23
23
  #ruby %{agregar_adsense_a_doc.rb}
24
24
  path = File.expand_path("~/.rubyforge/user-config.yml")
data/lib/rubyvis.rb CHANGED
@@ -5,6 +5,8 @@ require 'rexml/formatters/default'
5
5
 
6
6
  require 'pp'
7
7
  require 'rubyvis/internals'
8
+ require 'rubyvis/vector'
9
+
8
10
  require 'rubyvis/sceneelement'
9
11
  require 'rubyvis/property'
10
12
  require 'rubyvis/nest'
@@ -30,7 +32,7 @@ require 'rubyvis/mark/shorcut_methods'
30
32
  module Rubyvis
31
33
  @document=nil
32
34
  # Rubyvis version
33
- VERSION = '0.3.6'
35
+ VERSION = '0.4.0'
34
36
  # Protovis API on which current Rubyvis is based
35
37
  PROTOVIS_API_VERSION='3.3'
36
38
  # You actually can do it! http://snipplr.com/view/2137/uses-for-infinity-in-ruby/
@@ -71,22 +73,6 @@ module Rubyvis
71
73
  def self.parent
72
74
  lambda {|*args| self.parent.index}
73
75
  end
74
- def self.clear_document
75
- @document=REXML::Document.new
76
- @document.add_element("document")
77
- end
78
- def self.document
79
- if @document.nil?
80
- @document=REXML::Document.new
81
- @document.add_element("document")
82
- end
83
- @document.root
84
- end
85
- def self.to_svg
86
- s=""
87
- @document.write(s)
88
- s
89
- end
90
76
  end
91
77
 
92
78
  # Alias for Rubyvis module
@@ -36,9 +36,9 @@ module Rubyvis
36
36
  end
37
37
 
38
38
  if ['hsla','hsl'].include? color_type
39
- h=m2[0].to_i
40
- s=m2[1].to_f / 100
41
- l=m2[2].to_f / 100
39
+ h=m2[0].to_f
40
+ s=m2[1].to_f / 100.0
41
+ l=m2[2].to_f / 100.0
42
42
  return Color::Hsl.new(h,s,l,a).rgb
43
43
  end
44
44
 
@@ -106,7 +106,7 @@ module Rubyvis
106
106
  # errors.
107
107
  # * @param [k] {number} an optional scale factor; defaults to 1.
108
108
  def brighter(k)
109
- self.rgb.lighter(k)
109
+ self.rgb.brighter(k)
110
110
  end
111
111
 
112
112
  # Returns a new color that is a brighter version of this color. The behavior of
@@ -328,7 +328,7 @@ module Rubyvis
328
328
  # color to create a brighter version of this color. Although brighter and
329
329
  # darker are inverse operations, the results of a series of invocations of
330
330
  # these two methods might be inconsistent because of rounding errors.
331
- def lighter(k=1)
331
+ def brighter(k=1)
332
332
  k = 0.7**k
333
333
  i = 30
334
334
  r=self.r
@@ -390,7 +390,6 @@ module Rubyvis
390
390
  h = self.h
391
391
  s = self.s
392
392
  l = self.l
393
-
394
393
  # Some simple corrections for h, s and l. */
395
394
  h = h % 360
396
395
  h += 360 if (h < 0)
@@ -402,22 +401,21 @@ module Rubyvis
402
401
  m1 = 2 * l - m2
403
402
  v=lambda {|h1|
404
403
  if (h1 > 360)
405
- h1 -= 360;
404
+ h1 -= 360
406
405
  elsif (h1 < 0)
407
406
  h1 += 360
408
407
  end
409
408
 
410
409
 
411
- return m1 + (m2 - m1) * h1 / 60 if (h1 < 60)
412
- return m2 if (h1 < 180)
413
- return m1 + (m2 - m1) * (240 - h1) / 60 if (h1 < 240)
410
+ return m1 + (m2 - m1) * h1 / 60.0 if (h1 < 60.0)
411
+ return m2 if (h1 < 180.0)
412
+ return m1 + (m2 - m1) * (240.0 - h1) / 60.0 if (h1 < 240.0)
414
413
  return m1
415
414
  }
416
- vv=lambda {|h1|
417
- (v.call(h1) * 255).round
418
- }
419
415
 
416
+ vv=lambda {|h1| (v.call(h1) * 255).round}
420
417
  Rubyvis.rgb(vv.call(h + 120), vv.call(h), vv.call(h - 120), a)
418
+
421
419
  end
422
420
  end
423
421
 
@@ -62,16 +62,14 @@ module Rubyvis
62
62
  # @returns {pv.Nest} this.
63
63
 
64
64
  def key(k, f=nil)
65
- @keys.push(OpenStruct.new({:name=>key,:value=>f}))
65
+ @keys.push(OpenStruct.new({:name=>k, :value=>f}))
66
66
  @leaf=nil
67
67
  self
68
68
  end
69
69
 
70
70
  # Flattens using the specified leaf function. This is an alternative to
71
- # specifying an explicit set of keys; the tiers of the underlying tree will be
72
- # determined dynamically by recursing on the values, and the resulting keys
73
- # will be stored in the entries <tt>keys</tt> attribute. The leaf function must
74
- # return true for leaves, and false for internal nodes.
71
+ # specifying an explicit set of keys; the tiers of the underlying tree
72
+ # will be determined dynamically by recursing on the values, and the resulting keys will be stored in the entries +:keys+ attribute. The leaf function must return true for leaves, and false for internal nodes.
75
73
  #
76
74
  # @param {function} f a leaf function.
77
75
  # @returns {pv.Nest} this.
@@ -99,7 +97,7 @@ module Rubyvis
99
97
  @stack.pop
100
98
  }
101
99
  else
102
- @entries.push(@stack+value)
100
+ @entries.push(@stack+[value])
103
101
  end
104
102
  end
105
103
  # Returns the flattened array. Each entry in the array is an object; each
@@ -117,7 +115,7 @@ module Rubyvis
117
115
  @entries.map {|stack|
118
116
  m={}
119
117
  @keys.each_with_index {|k,i|
120
- v=@stack[i]
118
+ v=stack[i]
121
119
  m[k.name]=k.value ? k.value.js_call(self,v) : v
122
120
  }
123
121
  m
@@ -107,7 +107,7 @@ module Rubyvis
107
107
  end
108
108
  def values(f=nil)
109
109
  if f.nil?
110
- @values
110
+ return @values
111
111
  else
112
112
  @_values=Rubyvis.functor(f)
113
113
  return self
@@ -171,17 +171,20 @@ module Rubyvis
171
171
 
172
172
  # order
173
173
  _index=nil
174
- case (s.order)
175
- when "inside-out"
176
- max = dy.map {|v| Rubyvis.max.index(v) }
177
- map = pv.range(n).sort {|a,b| return max[a] - max[b]}
174
+ case s.order
175
+ when "inside-out"
176
+
177
+ max = dy.map {|v| Rubyvis.max_index(v) }
178
+ _map = Rubyvis.range(n).sort {|a,b| max[a] <=> max[b]}
179
+
178
180
  sums = dy.map {|v| Rubyvis.sum(v)}
179
181
  top = 0
180
182
  bottom = 0
181
183
  tops = []
182
184
  bottoms = []
185
+
183
186
  n.times {|i|
184
- j = map[i]
187
+ j = _map[i]
185
188
  if (top < bottom)
186
189
  top += sums[j];
187
190
  tops.push(j);
@@ -190,8 +193,9 @@ module Rubyvis
190
193
  bottoms.push(j);
191
194
  end
192
195
  }
193
- _index = bottoms.reverse+tops
194
196
 
197
+ _index = bottoms.reverse+tops
198
+
195
199
  when "reverse"
196
200
  _index = Rubyvis.range(n - 1, -1, -1)
197
201
  else
@@ -237,13 +241,13 @@ module Rubyvis
237
241
  y[_index[0]][j] = 0
238
242
 
239
243
  k = 0
240
- n.times {|i|k += dy[i][j]}
244
+ n.times {|i| k += dy[i][j]}
241
245
  if (k!=0)
242
246
  k = h / k.to_f
243
247
  n.times {|i| dy[i][j] *= k}
244
248
  else
245
249
  k = h / n.to_f
246
- n.times { dy[i][j] = k}
250
+ n.times {|i| dy[i][j] = k}
247
251
  end
248
252
  }
249
253
  else
@@ -267,6 +271,7 @@ module Rubyvis
267
271
  px = i < 0 ? (horizontal ? "l" : "b") : orient[i + 1,1]
268
272
  py = orient[0,1]
269
273
 
274
+
270
275
  @values=values
271
276
  @prop.each {|k,v|
272
277
  @prop[k]=@none
@@ -279,7 +284,7 @@ module Rubyvis
279
284
 
280
285
  def layer
281
286
  that=self
282
- value = Rubyvis::Mark.new().data(lambda { that.values[self.parent.index] }).top(proxy("t")).left(proxy("l")).right(proxy("r")).
287
+ value = Rubyvis::Mark.new().data(lambda { that.values[self.parent.index] }).top(proxy("t")).left(proxy("l")).right(proxy("r")).
283
288
  bottom(proxy("b")).
284
289
  width(proxy("w")).
285
290
  height(proxy("h"))
data/lib/rubyvis/mark.rb CHANGED
@@ -618,6 +618,7 @@ module Rubyvis
618
618
  p a if $DEBUG
619
619
  a
620
620
  }).visible(lambda {
621
+
621
622
  self.scene.target[index].visible
622
623
  }).id(lambda {
623
624
  self.scene.target[index].id
@@ -660,6 +661,7 @@ module Rubyvis
660
661
  'left'
661
662
  end
662
663
  }).text_baseline(lambda {
664
+
663
665
  if ['right','left','center'].include? self.name
664
666
  'middle'
665
667
  elsif self.name=='top'
@@ -833,7 +835,10 @@ module Rubyvis
833
835
  end
834
836
  def bind_bind(mark)
835
837
  begin
836
- mark._properties.each {|v|
838
+ #puts "Binding:#{mark.type}->#{mark._properties.map {|v| v.name}}"
839
+
840
+ mark._properties.reverse.each {|v|
841
+
837
842
  #p v.name
838
843
  k=v.name
839
844
  if !@seen.has_key?(k)
@@ -864,10 +869,14 @@ module Rubyvis
864
869
  @types={1=>[],2=>[],3=>[]}
865
870
  @_data=nil
866
871
  @_required=[]
872
+ #puts "Binding!"
867
873
  bind_bind(self)
868
874
  bind_bind((self.class).defaults)
869
875
  @types[1].reverse!
870
876
  @types[3].reverse!
877
+ #puts "***"
878
+ #pp @types[3]
879
+ #puts "***"
871
880
  mark=self
872
881
  begin
873
882
  properties.each {|name,v|
@@ -1056,7 +1065,6 @@ module Rubyvis
1056
1065
  #p "#{type}:"+props.map {|prop| prop.name}.join(",")
1057
1066
  props.each do |prop|
1058
1067
  v=prop.value
1059
-
1060
1068
  # p "#{prop.name}=#{v}"
1061
1069
  if prop._type==3
1062
1070
  v=v.js_apply(self, Mark.stack)