rubyvis 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -79,7 +79,7 @@ module Rubyvis
79
79
  # style is a categorical color. The default shape is "circle" with radius 4.5.
80
80
  def self.defaults()
81
81
  a=Rubyvis::Colors.category10
82
- Dot.new().extend(Mark.defaults).shape("circle"). line_width(1.5). stroke_style(lambda {a.scale(self.parent.index)})
82
+ Dot.new().mark_extend(Mark.defaults).shape("circle"). line_width(1.5). stroke_style(lambda {a.scale(self.parent.index)})
83
83
  end
84
84
  # Constructs a new dot anchor with default properties. Dots support five
85
85
  # different anchors:<ul>
@@ -36,7 +36,7 @@ module Rubyvis
36
36
 
37
37
  # Default properties for images. By default, there is no stroke or fill style.
38
38
  def self.defaults
39
- Image.new.extend(Bar.defaults).fill_style(nil)
39
+ Image.new.mark_extend(Bar.defaults).fill_style(nil)
40
40
  end
41
41
 
42
42
  # @TODO: NOT IMPLEMENTED YET
@@ -101,7 +101,7 @@ module Rubyvis
101
101
  end
102
102
  # Default properties for labels. See the individual properties for the default values.
103
103
  def self.defaults
104
- Label.new.extend(Mark.defaults).events('none').text(Rubyvis.identity).font("10px sans-serif" ).text_angle( 0 ).text_style( 'black' ).text_align( 'left' ).text_baseline( 'bottom' ).text_margin(3)
104
+ Label.new.mark_extend(Mark.defaults).events('none').text(Rubyvis.identity).font("10px sans-serif" ).text_angle( 0 ).text_style( 'black' ).text_align( 'left' ).text_baseline( 'bottom' ).text_margin(3)
105
105
  end
106
106
  end
107
107
  end
@@ -145,7 +145,7 @@ module Rubyvis
145
145
 
146
146
  def self.defaults
147
147
  a=Rubyvis::Colors.category10()
148
- Line.new.extend(Mark.defaults).line_join('miter').line_width(1.5).stroke_style( lambda { a.scale(parent.index)}).interpolate('linear').eccentricity(0).tension(0.7)
148
+ Line.new.mark_extend(Mark.defaults).line_join('miter').line_width(1.5).stroke_style( lambda { a.scale(parent.index)}).interpolate('linear').eccentricity(0).tension(0.7)
149
149
  end
150
150
  end
151
151
  end
@@ -30,7 +30,7 @@ module Rubyvis
30
30
  end
31
31
 
32
32
  def self.defaults
33
- Panel.new.extend(Bar.defaults).fill_style(nil).overflow('visible')
33
+ Panel.new.mark_extend(Bar.defaults).fill_style(nil).overflow('visible')
34
34
  end
35
35
  def add(type)
36
36
  child=type.new
@@ -8,7 +8,7 @@ module Rubyvis
8
8
  @properties=Mark.properties.dup
9
9
  attr_accessor_dsl :width, :height, :line_width, [:stroke_style, lambda {|d| Rubyvis.color(d)}]
10
10
  def self.defaults
11
- Rule.new.extend(Mark.defaults).line_width(1).stroke_style('black').antialias(false)
11
+ Rule.new.mark_extend(Mark.defaults).line_width(1).stroke_style('black').antialias(false)
12
12
  end
13
13
  def type
14
14
  'rule'
@@ -13,7 +13,7 @@ module Rubyvis
13
13
 
14
14
  def self.defaults
15
15
  a=Rubyvis.Colors.category20()
16
- Wedge.new.extend(Mark.defaults).start_angle(lambda {s=self.sibling; s ? s.end_angle: -Math::PI.quo(2) } ).inner_radius( 0 ).line_width( 1.5 ).stroke_style( nil ).fill_style( lambda {a.scale(self.index)})
16
+ Wedge.new.mark_extend(Mark.defaults).start_angle(lambda {s=self.sibling; s ? s.end_angle: -Math::PI.quo(2) } ).inner_radius( 0 ).line_width( 1.5 ).stroke_style( nil ).fill_style( lambda {a.scale(self.index)})
17
17
  end
18
18
  def mid_radius
19
19
  (inner_radius+outer_radius) / 2.0
@@ -258,7 +258,6 @@ module Rubyvis::SvgScene
258
258
  d = []
259
259
  m = []
260
260
  dx = []
261
- k = 0
262
261
 
263
262
  #/* Compute the slopes of the secant lines between successive points. */
264
263
  (points.size-1).times {|k|
@@ -8,7 +8,7 @@ module Rubyvis
8
8
  end
9
9
  include Enumerable
10
10
  attr_accessor :visible
11
- attr_accessor :mark, :type, :child_index, :parent, :parent_index, :target, :defs, :data, :antialias, :line_width, :fill_style, :overflow, :width, :height, :top, :bottom, :left, :right, :title, :reverse, :stroke_style, :transform, :canvas, :_g, :events, :cursor, :children, :id, :segmented, :interpolate, :tension, :name, :text_baseline, :text_align, :text, :font, :text_angle, :text_style, :text_margin, :text_decoration, :text_shadow, :line_join, :eccentricity, :shape_size, :shape, :shape_angle, :shape_radius, :start_angle, :end_angle, :angle, :inner_radius, :outer_radius, :layers, :orient, :offset, :order,:url, :image_width, :image_height, :image
11
+ attr_accessor :mark, :type, :child_index, :parent, :parent_index, :target, :defs, :data, :antialias, :line_width, :fill_style, :overflow, :width, :height, :top, :bottom, :left, :right, :title, :reverse, :stroke_style, :transform, :canvas, :_g, :events, :cursor, :children, :id, :segmented, :interpolate, :tension, :name, :text_baseline, :text_align, :text, :font, :text_angle, :text_style, :text_margin, :text_decoration, :text_shadow, :line_join, :eccentricity, :shape_size, :shape, :shape_angle, :shape_radius, :start_angle, :end_angle, :angle, :inner_radius, :outer_radius, :layers, :orient, :offset, :order,:url, :image_width, :image_height, :image, :_id, :nodes, :round, :links, :padding_left, :padding_right, :padding_top, :padding_bottom, :mode
12
12
 
13
13
  def []=(v,i)
14
14
  if v.is_a? Numeric
@@ -0,0 +1,218 @@
1
+ require File.expand_path(File.dirname(__FILE__)+"/spec_helper.rb")
2
+ describe Rubyvis::Dom do
3
+ it "should map correctly" do
4
+ map={
5
+ :a=>{:aa=>1,
6
+ :ab=>{:aba=>2}
7
+ },
8
+ :b=>4,
9
+ :c=>{:ca=>5}
10
+ }
11
+ dom_map=Rubyvis::Dom.new(map)
12
+
13
+ root=dom_map.root.sort {|a,b| a.node_name.to_s<=>b.node_name.to_s}
14
+ root.nodes.should be_instance_of Array
15
+ root.nodes.size.should eq 8
16
+ ar=root.nodes.map do |n|
17
+ [n.node_name, n.node_value]
18
+ end
19
+ ar.should eq [[nil, nil], [:a, nil], [:aa, 1], [:ab, nil], [:aba, 2], [:b, 4], [:c, nil], [:ca, 5]]
20
+ end
21
+ it "should treemap example works right" do
22
+ flare={:a=>{:aa=>1,:ab=>1,:ac=>1},:b=>{:ba=>1,:bb=>1},:c=>3}
23
+ dom_map=Rubyvis::Dom.new(flare)
24
+ nodes = dom_map.root("flare").nodes
25
+ root = nodes[0]
26
+ root.visit_after {|nn,i|
27
+ if nn.first_child
28
+ nn.size=Rubyvis.sum(nn.child_nodes, lambda {|v| v.size})
29
+ else
30
+ nn.size=nn.node_value.to_f
31
+ end
32
+ }
33
+ root.sort(lambda {|a,b|
34
+ if a.size!=b.size
35
+ a.size<=>b.size
36
+ else
37
+ a.node_name.to_s<=>b.node_name.to_s
38
+ end
39
+
40
+ })
41
+ ar=[]
42
+ root.visit_before {|n,i|
43
+ ar.push [n.node_name, n.size]
44
+ }
45
+ ar.should eq [["flare", 8.0], [:b, 2.0], [:ba, 1.0], [:bb, 1.0], [:a, 3.0], [:aa, 1.0], [:ab, 1.0], [:ac, 1.0], [:c, 3.0]]
46
+ end
47
+ describe Rubyvis::Dom::Node do
48
+ before do
49
+ @n =Rubyvis::Dom::Node.new(:a)
50
+ @n2=Rubyvis::Dom::Node.new(:b)
51
+ @n3=Rubyvis::Dom::Node.new(:c)
52
+ @n4=Rubyvis::Dom::Node.new(:d)
53
+ @n5=Rubyvis::Dom::Node.new(:e)
54
+
55
+ end
56
+ subject {@n}
57
+ it "should have node_value" do
58
+ @n.node_value.should eq :a
59
+ end
60
+ it {should respond_to :parent_node}
61
+ it {should respond_to :first_child}
62
+ it {should respond_to :last_child}
63
+ it {should respond_to :previous_sibling}
64
+ it {should respond_to :next_sibling}
65
+ it {should respond_to :node_name}
66
+ it {should respond_to :child_nodes}
67
+ it "should child_nodes be empty" do
68
+ @n.child_nodes.size==0
69
+ end
70
+ it "method append_child" do
71
+ @n.append_child(@n2).should eq @n2
72
+ @n.child_nodes.should eq [@n2]
73
+ @n2.parent_node.should eq @n
74
+ @n.first_child.should eq @n2
75
+ @n.last_child.should eq @n2
76
+
77
+ @n.append_child(@n3)
78
+ @n.child_nodes.should eq [@n2,@n3]
79
+ @n3.parent_node.should eq @n
80
+ @n.first_child.should eq @n2
81
+ @n.last_child.should eq @n3
82
+ @n2.previous_sibling.should be_nil
83
+ @n2.next_sibling.should eq @n3
84
+ @n3.previous_sibling.should eq @n2
85
+ @n3.next_sibling.should be_nil
86
+
87
+ @n.append_child(@n4)
88
+ @n.last_child.should eq @n4
89
+ @n2.next_sibling.should eq @n3
90
+ @n3.next_sibling.should eq @n4
91
+ @n4.next_sibling.should be_nil
92
+
93
+ @n4.previous_sibling.should eq @n3
94
+ @n3.previous_sibling.should eq @n2
95
+ @n2.previous_sibling.should be_nil
96
+
97
+ end
98
+ it "method remove_child" do
99
+ @n.append_child(@n2)
100
+ @n.append_child(@n3)
101
+ @n.append_child(@n4)
102
+
103
+ @n.remove_child(@n3).should eq @n3
104
+
105
+ @n3.next_sibling.should be_nil
106
+ @n3.previous_sibling.should be_nil
107
+ @n3.parent_node.should be_nil
108
+
109
+ @n2.next_sibling.should eq @n4
110
+ @n4.previous_sibling.should eq @n2
111
+
112
+ @n.remove_child(@n4)
113
+ @n2.next_sibling.should be_nil
114
+ @n.first_child.should eq @n2
115
+ @n.last_child.should eq @n2
116
+ end
117
+
118
+ it "method insert_before" do
119
+ @n.append_child(@n2)
120
+ @n.append_child(@n4)
121
+ @n.insert_before(@n3,@n4)
122
+ @n.child_nodes.size.should eq 3
123
+
124
+ @n.first_child.should eq @n2
125
+ @n.last_child.should eq @n4
126
+ @n2.next_sibling.should eq @n3
127
+ @n3.next_sibling.should eq @n4
128
+ @n4.next_sibling.should be_nil
129
+
130
+ @n2.previous_sibling.should be_nil
131
+ @n3.previous_sibling.should eq @n2
132
+ @n4.previous_sibling.should eq @n3
133
+
134
+
135
+
136
+ @n.child_nodes[0].should eq @n2
137
+ @n.child_nodes[1].should eq @n3
138
+ @n.child_nodes[2].should eq @n4
139
+
140
+ end
141
+ it "method replace_child" do
142
+ @n.append_child(@n2)
143
+ @n.append_child(@n3)
144
+ @n.replace_child(@n4,@n3)
145
+
146
+ @n.child_nodes.size.should eq 2
147
+
148
+ @n.child_nodes[0].should eq @n2
149
+ @n.child_nodes[1].should eq @n4
150
+
151
+ @n2.next_sibling.should eq @n4
152
+ @n4.next_sibling.should eq nil
153
+
154
+ @n2.previous_sibling.should be_nil
155
+ @n4.previous_sibling.should eq @n2
156
+
157
+
158
+ @n.first_child.should eq @n2
159
+ @n.last_child.should eq @n4
160
+ end
161
+ describe "visit methods" do
162
+ before do
163
+ @n.append_child(@n2)
164
+ @n2.append_child(@n5)
165
+
166
+ @n.append_child(@n3)
167
+ @n3.append_child(@n4)
168
+ @a=[]
169
+ end
170
+
171
+ it "method visit_before" do
172
+ @n.visit_before {|n,d|
173
+ @a.push([n.node_value,d])
174
+ }
175
+ @a.should eq [[:a, 0], [:b, 1], [:e, 2], [:c, 1], [:d, 2]]
176
+ end
177
+
178
+ it "method visit_after" do
179
+ @n.visit_after {|n,d|
180
+ @a.push([n.node_value,d])
181
+ }
182
+ @a.should eq [[:e, 2], [:b, 1], [:d, 2], [:c, 1], [:a, 0]]
183
+ end
184
+ end
185
+ it "should sort correctly" do
186
+ @n.append_child(@n5)
187
+ @n.append_child(@n4)
188
+ @n.append_child(@n3)
189
+ @n.append_child(@n2)
190
+
191
+ @n.sort {|a,b| a.node_value.to_s<=>b.node_value.to_s}
192
+
193
+ @n.child_nodes.should eq [@n2,@n3,@n4,@n5]
194
+
195
+ @n.first_child.should eq @n2
196
+ @n.last_child.should eq @n5
197
+
198
+ @n2.next_sibling.should eq @n3
199
+ @n3.next_sibling.should eq @n4
200
+ @n4.next_sibling.should eq @n5
201
+ @n5.next_sibling.should be_nil
202
+
203
+ @n2.previous_sibling.should be_nil
204
+ @n3.previous_sibling.should eq @n2
205
+ @n4.previous_sibling.should eq @n3
206
+ @n5.previous_sibling.should eq @n4
207
+ end
208
+ it "should reverse correctly" do
209
+ @n.append_child(@n3)
210
+ @n.append_child(@n5)
211
+ @n.append_child(@n2)
212
+ @n.append_child(@n4)
213
+ @n.reverse
214
+ @n.child_nodes.should eq [@n4,@n2,@n5,@n3]
215
+ end
216
+
217
+ end
218
+ end
@@ -25,7 +25,7 @@ EXAMPLES.each do |v|
25
25
  e=v[1]
26
26
  file "examples/#{e}.html"=>["examples.haml", "examples/#{e}.svg", :build_site, v[0]]
27
27
  file "examples/#{e}.svg"=>[v[0]] do |t|
28
- system "ruby1.9 #{v[0]} > #{t.name}"
28
+ system "ruby #{v[0]} > #{t.name}"
29
29
  end
30
30
  file "examples/#{e}.png"=>["examples/#{e}.svg"] do |t|
31
31
  system "rsvg -w 200 -h 200 -f png examples/#{e}.svg #{t.name}"
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Claudio Bustos
@@ -36,7 +36,7 @@ cert_chain:
36
36
  rpP0jjs0
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2010-11-13 00:00:00 -03:00
39
+ date: 2010-11-17 00:00:00 -03:00
40
40
  default_executable:
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
@@ -123,9 +123,9 @@ dependencies:
123
123
  hash: 19
124
124
  segments:
125
125
  - 2
126
- - 6
127
- - 2
128
- version: 2.6.2
126
+ - 7
127
+ - 0
128
+ version: 2.7.0
129
129
  type: :development
130
130
  version_requirements: *id006
131
131
  description: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a great visualization toolkit
@@ -172,16 +172,22 @@ files:
172
172
  - examples/second.rb
173
173
  - examples/stacked_charts.rb
174
174
  - examples/third.rb
175
+ - examples/treemap/treemap.rb
176
+ - examples/treemap/treemap_data.rb
175
177
  - lib/rubyvis.rb
176
178
  - lib/rubyvis/color/color.rb
177
179
  - lib/rubyvis/color/colors.rb
180
+ - lib/rubyvis/dom.rb
178
181
  - lib/rubyvis/format.rb
179
182
  - lib/rubyvis/format/date.rb
180
183
  - lib/rubyvis/format/number.rb
181
184
  - lib/rubyvis/internals.rb
182
185
  - lib/rubyvis/javascript_behaviour.rb
183
186
  - lib/rubyvis/layout.rb
187
+ - lib/rubyvis/layout/hierarchy.rb
188
+ - lib/rubyvis/layout/network.rb
184
189
  - lib/rubyvis/layout/stack.rb
190
+ - lib/rubyvis/layout/treemap.rb
185
191
  - lib/rubyvis/mark.rb
186
192
  - lib/rubyvis/mark/anchor.rb
187
193
  - lib/rubyvis/mark/area.rb
@@ -217,6 +223,7 @@ files:
217
223
  - spec/anchor_spec.rb
218
224
  - spec/area_spec.rb
219
225
  - spec/bar_spec.rb
226
+ - spec/dom_spec.rb
220
227
  - spec/internal_spec.rb
221
228
  - spec/javascript_behaviour_spec.rb
222
229
  - spec/label_spec.rb
@@ -367,21 +374,5 @@ rubygems_version: 1.3.7
367
374
  signing_key:
368
375
  specification_version: 3
369
376
  summary: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a great visualization toolkit
370
- test_files:
371
- - spec/bar_spec.rb
372
- - spec/nest_spec.rb
373
- - spec/scale_ordinal_spec.rb
374
- - spec/internal_spec.rb
375
- - spec/panel_spec.rb
376
- - spec/scale_log_spec.rb
377
- - spec/scale_linear_datetime_spec.rb
378
- - spec/anchor_spec.rb
379
- - spec/readme_spec.rb
380
- - spec/scale_spec.rb
381
- - spec/scale_linear_spec.rb
382
- - spec/ruby_api_spec.rb
383
- - spec/label_spec.rb
384
- - spec/mark_spec.rb
385
- - spec/area_spec.rb
386
- - spec/javascript_behaviour_spec.rb
387
- - spec/line_spec.rb
377
+ test_files: []
378
+
metadata.gz.sig CHANGED
Binary file