rubyvis 0.4.0 → 0.4.1
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.
- data.tar.gz.sig +3 -2
- data/History.txt +6 -0
- data/Rakefile +1 -1
- data/examples/5_pv_hierarchies/bubble_charts.rb +1 -1
- data/examples/5_pv_hierarchies/bubble_charts_matrix.rb +1 -1
- data/examples/5_pv_hierarchies/circle_packing.rb +1 -1
- data/examples/5_pv_hierarchies/dendogram.rb +1 -1
- data/examples/5_pv_hierarchies/icicle.rb +1 -1
- data/examples/5_pv_hierarchies/indent.rb +1 -1
- data/examples/5_pv_hierarchies/node_link_tree.rb +1 -1
- data/examples/5_pv_hierarchies/sunburst.rb +1 -1
- data/examples/5_pv_hierarchies/treemap.rb +1 -1
- data/lib/rubyvis.rb +1 -1
- data/lib/rubyvis/color/color.rb +35 -34
- data/lib/rubyvis/color/colors.rb +1 -1
- data/lib/rubyvis/internals.rb +2 -2
- data/lib/rubyvis/layout.rb +4 -1
- data/lib/rubyvis/layout/matrix.rb +105 -105
- data/lib/rubyvis/layout/network.rb +3 -3
- data/lib/rubyvis/mark.rb +5 -4
- data/lib/rubyvis/mark/area.rb +1 -1
- data/lib/rubyvis/mark/image.rb +1 -1
- data/lib/rubyvis/mark/rule.rb +2 -2
- data/lib/rubyvis/mark/shorcut_methods.rb +1 -0
- data/lib/rubyvis/mark/wedge.rb +31 -22
- data/lib/rubyvis/nest.rb +1 -1
- data/lib/rubyvis/scale/ordinal.rb +1 -1
- data/lib/rubyvis/scale/quantitative.rb +2 -1
- data/lib/rubyvis/scene/svg_curve.rb +24 -14
- data/lib/rubyvis/scene/svg_dot.rb +1 -1
- data/lib/rubyvis/scene/svg_label.rb +3 -2
- data/lib/rubyvis/scene/svg_scene.rb +6 -12
- data/spec/anchor_spec.rb +3 -3
- data/spec/area_spec.rb +22 -22
- data/spec/dot_spec.rb +9 -9
- data/spec/layout_arc_spec.rb +8 -8
- data/spec/layout_cluster_spec.rb +7 -6
- data/spec/layout_grid_spec.rb +18 -18
- data/spec/layout_indent_spec.rb +6 -6
- data/spec/layout_matrix_spec.rb +9 -9
- data/spec/layout_pack_spec.rb +6 -6
- data/spec/layout_partition_spec.rb +6 -6
- data/spec/layout_stack_spec.rb +10 -10
- data/spec/layout_tree_spec.rb +6 -6
- data/spec/layout_treemap_spec.rb +4 -4
- data/spec/line_spec.rb +14 -14
- data/spec/nest_spec.rb +2 -2
- data/spec/rule_spec.rb +11 -12
- data/spec/spec_helper.rb +8 -7
- data/spec/wedge_spec.rb +22 -22
- data/web/Rakefile +4 -1
- metadata +18 -5
- metadata.gz.sig +0 -0
data/spec/dot_spec.rb
CHANGED
@@ -14,16 +14,16 @@ require File.expand_path(File.dirname(__FILE__)+"/spec_helper.rb")
|
|
14
14
|
w = 400
|
15
15
|
h = 400
|
16
16
|
|
17
|
-
vis = Rubyvis::Panel.new()
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
vis = Rubyvis::Panel.new().
|
18
|
+
width(w).
|
19
|
+
height(h).
|
20
|
+
margin(20).
|
21
|
+
stroke_style("#ccc");
|
22
22
|
|
23
|
-
dot = vis.add(Rubyvis::Dot)
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
dot = vis.add(Rubyvis::Dot).
|
24
|
+
top(w / 2.0).
|
25
|
+
left(w / 2.0).
|
26
|
+
shape_radius(w >> 2)
|
27
27
|
|
28
28
|
dot.anchor("top").add(Rubyvis::Label).text("top");
|
29
29
|
dot.anchor("left").add(Rubyvis::Label).text("left");
|
data/spec/layout_arc_spec.rb
CHANGED
@@ -19,15 +19,15 @@ describe Rubyvis::Layout::Arc do
|
|
19
19
|
|
20
20
|
color=Rubyvis::Colors.category19
|
21
21
|
|
22
|
-
@vis = Rubyvis::Panel.new()
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
@vis = Rubyvis::Panel.new().
|
23
|
+
width(w).
|
24
|
+
height(h).
|
25
|
+
bottom(50).
|
26
|
+
left(0)
|
27
27
|
|
28
|
-
mat=@vis.add(Rubyvis::Layout::Arc)
|
29
|
-
|
30
|
-
|
28
|
+
mat=@vis.add(Rubyvis::Layout::Arc).
|
29
|
+
nodes(net_nodes).links(net_links).
|
30
|
+
sort(lambda {|a,b| a.group<=>b.group})
|
31
31
|
|
32
32
|
mat.link.add(Rubyvis::Line).
|
33
33
|
antialias(false).
|
data/spec/layout_cluster_spec.rb
CHANGED
@@ -15,12 +15,12 @@ describe Rubyvis::Layout::Cluster do
|
|
15
15
|
w=400
|
16
16
|
h=400
|
17
17
|
|
18
|
-
@vis = Rubyvis.Panel.new()
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
@vis = Rubyvis.Panel.new().
|
19
|
+
width(w).
|
20
|
+
height(h).
|
21
|
+
top(20).
|
22
|
+
bottom(10).
|
23
|
+
left(10)
|
24
24
|
|
25
25
|
@cluster = @vis.add(Rubyvis::Layout::Cluster).
|
26
26
|
nodes(hier_nodes_big).
|
@@ -40,6 +40,7 @@ describe Rubyvis::Layout::Cluster do
|
|
40
40
|
it "should render correctly 'cluster.html' custom test" do
|
41
41
|
@vis.render
|
42
42
|
@pv_out=fixture_svg_read("layout_cluster.svg")
|
43
|
+
File.open("test.svg","w") {|fp| fp.write(@vis.to_svg)}
|
43
44
|
@vis.to_svg.should have_same_svg_elements(@pv_out)
|
44
45
|
end
|
45
46
|
it "should render correctly 'cluster_left_group_2.html' custom test" do
|
data/spec/layout_grid_spec.rb
CHANGED
@@ -10,25 +10,25 @@ describe Rubyvis::Layout::Grid do
|
|
10
10
|
end
|
11
11
|
it "should render equal to protovis 'layout_grid.html' test" do
|
12
12
|
|
13
|
-
vis = pv.Panel.new()
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
vis = pv.Panel.new().
|
14
|
+
data(["A"]).
|
15
|
+
width(800).
|
16
|
+
height(800).
|
17
|
+
margin(10).
|
18
|
+
fill_style("#eee").
|
19
|
+
stroke_style("#ccc");
|
20
20
|
|
21
|
-
vis.add(Rubyvis::Layout::Grid)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
vis.add(Rubyvis::Layout::Grid).
|
22
|
+
rows(3).
|
23
|
+
cols(3).
|
24
|
+
cell.add(Rubyvis::Layout::Grid).
|
25
|
+
rows(Rubyvis.index).
|
26
|
+
cols(Rubyvis.index).
|
27
|
+
cell.add(Rubyvis::Bar).
|
28
|
+
stroke_style("#fff").
|
29
|
+
anchor("center").add(Rubyvis::Label).
|
30
|
+
textStyle("rgba(255, 255, 255, .4)").
|
31
|
+
font("24px sans");
|
32
32
|
|
33
33
|
vis.render();
|
34
34
|
|
data/spec/layout_indent_spec.rb
CHANGED
@@ -14,12 +14,12 @@ describe Rubyvis::Layout::Indent do
|
|
14
14
|
w=200
|
15
15
|
h=200
|
16
16
|
|
17
|
-
@vis = pv.Panel.new()
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
17
|
+
@vis = pv.Panel.new().
|
18
|
+
width(w).
|
19
|
+
height(h).
|
20
|
+
top(20).
|
21
|
+
bottom(10).
|
22
|
+
left(10)
|
23
23
|
|
24
24
|
indent = @vis.add(pv.Layout.Indent).
|
25
25
|
nodes(hier_nodes_big).
|
data/spec/layout_matrix_spec.rb
CHANGED
@@ -12,16 +12,16 @@ describe Rubyvis::Layout::Matrix do
|
|
12
12
|
h = 700
|
13
13
|
|
14
14
|
color=Rubyvis::Colors.category19()
|
15
|
-
@vis = Rubyvis::Panel.new()
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
@vis = Rubyvis::Panel.new().
|
16
|
+
width(w).
|
17
|
+
height(h).
|
18
|
+
top(50).
|
19
|
+
left(50)
|
20
20
|
|
21
|
-
mat=@vis.add(Rubyvis::Layout.Matrix)
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
mat=@vis.add(Rubyvis::Layout.Matrix).
|
22
|
+
directed(true).
|
23
|
+
nodes(net_nodes).links(net_links).
|
24
|
+
sort(lambda {|a,b| a.group<=>b.group})
|
25
25
|
|
26
26
|
mat.link.add(pv.Bar).
|
27
27
|
fill_style(lambda {|l| l.link_value!=0 ?
|
data/spec/layout_pack_spec.rb
CHANGED
@@ -11,12 +11,12 @@ describe Rubyvis::Layout::Pack do
|
|
11
11
|
w=200
|
12
12
|
h=200
|
13
13
|
|
14
|
-
@vis = pv.Panel.new()
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
@vis = pv.Panel.new().
|
15
|
+
width(w).
|
16
|
+
height(h).
|
17
|
+
top(20).
|
18
|
+
bottom(10).
|
19
|
+
left(10)
|
20
20
|
|
21
21
|
pack = @vis.add(pv.Layout.Pack).
|
22
22
|
nodes(hier_nodes_big)
|
@@ -13,12 +13,12 @@ describe Rubyvis::Layout::Partition do
|
|
13
13
|
w=400
|
14
14
|
h=400
|
15
15
|
|
16
|
-
@vis = pv.Panel.new()
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
@vis = pv.Panel.new().
|
17
|
+
width(w).
|
18
|
+
height(h).
|
19
|
+
top(20).
|
20
|
+
bottom(10).
|
21
|
+
left(10)
|
22
22
|
|
23
23
|
pack = @vis.add(Rubyvis::Layout::Partition::Fill).
|
24
24
|
nodes(hier_nodes_big).
|
data/spec/layout_stack_spec.rb
CHANGED
@@ -20,19 +20,19 @@ describe Rubyvis::Layout::Stack do
|
|
20
20
|
|
21
21
|
fill=pv.ramp("#ada", "#656").domain(n, 0)
|
22
22
|
|
23
|
-
@vis = Rubyvis::Panel.new()
|
24
|
-
|
25
|
-
|
23
|
+
@vis = Rubyvis::Panel.new().
|
24
|
+
width(w).
|
25
|
+
height(@h)
|
26
26
|
|
27
27
|
dat=waves(n,m)
|
28
|
-
@stack=@vis.add(Rubyvis::Layout::Stack)
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
@stack=@vis.add(Rubyvis::Layout::Stack).
|
29
|
+
layers(dat).
|
30
|
+
x(lambda {|d| x[self.index]}).
|
31
|
+
y(lambda {|d| d})
|
32
32
|
|
33
|
-
@stack.layer.add(Rubyvis::Area)
|
34
|
-
|
35
|
-
|
33
|
+
@stack.layer.add(Rubyvis::Area).
|
34
|
+
fill_style(lambda {fill[self.parent.index]}).
|
35
|
+
stroke_style("#797")
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should render 'stack-expand.html' example correctly" do
|
data/spec/layout_tree_spec.rb
CHANGED
@@ -11,12 +11,12 @@ describe Rubyvis::Layout::Treemap do
|
|
11
11
|
w=200
|
12
12
|
h=200
|
13
13
|
|
14
|
-
@vis = pv.Panel.new()
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
@vis = pv.Panel.new().
|
15
|
+
width(w).
|
16
|
+
height(h).
|
17
|
+
top(20).
|
18
|
+
bottom(10).
|
19
|
+
left(10)
|
20
20
|
|
21
21
|
@tree= @vis.add(pv.Layout.Tree).
|
22
22
|
nodes(hier_nodes).breadth(40)
|
data/spec/layout_treemap_spec.rb
CHANGED
@@ -11,9 +11,9 @@ describe Rubyvis::Layout::Treemap do
|
|
11
11
|
w=200
|
12
12
|
h=200
|
13
13
|
|
14
|
-
@vis = pv.Panel.new()
|
15
|
-
|
16
|
-
|
14
|
+
@vis = pv.Panel.new().
|
15
|
+
width(w).
|
16
|
+
height(h)
|
17
17
|
|
18
18
|
treemap = @vis.add(pv.Layout.Treemap).
|
19
19
|
nodes(hier_nodes).
|
@@ -34,7 +34,7 @@ describe Rubyvis::Layout::Treemap do
|
|
34
34
|
@pv_out=fixture_svg_read("layout_treemap.svg")
|
35
35
|
end
|
36
36
|
|
37
|
-
it "should render equal to protovis version " do
|
37
|
+
it "should render equal to protovis version " do
|
38
38
|
@vis.to_svg.should have_same_svg_elements(@pv_out)
|
39
39
|
end
|
40
40
|
end
|
data/spec/line_spec.rb
CHANGED
@@ -28,13 +28,13 @@ describe Rubyvis::Line do
|
|
28
28
|
interpolations=["linear","step-before","step-after","polar","polar-reverse", "basis", "cardinal"]
|
29
29
|
|
30
30
|
#/* The root panel. */
|
31
|
-
vis = pv.Panel.new()
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
vis = pv.Panel.new().
|
32
|
+
width(w).
|
33
|
+
height(h).
|
34
|
+
bottom(20).
|
35
|
+
left(20).
|
36
|
+
right(10).
|
37
|
+
top(5)
|
38
38
|
|
39
39
|
interpolations.each_with_index do |inter,i|
|
40
40
|
n=i%2
|
@@ -78,13 +78,13 @@ describe Rubyvis::Line do
|
|
78
78
|
|
79
79
|
interpolations=["linear","step-before","step-after","polar","polar-reverse", "basis", "cardinal","monotone"]
|
80
80
|
#/* The root panel. */
|
81
|
-
vis = pv.Panel.new()
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
81
|
+
vis = pv.Panel.new().
|
82
|
+
width(w).
|
83
|
+
height(h).
|
84
|
+
bottom(20).
|
85
|
+
left(20).
|
86
|
+
right(10).
|
87
|
+
top(5)
|
88
88
|
|
89
89
|
interpolations.each_with_index do |inter,i|
|
90
90
|
n=i%2
|
data/spec/nest_spec.rb
CHANGED
@@ -34,9 +34,9 @@ describe Rubyvis::Nest do
|
|
34
34
|
Rubyvis::NestedArray.new(:key=>2011, :values=>
|
35
35
|
[
|
36
36
|
Rubyvis::NestedArray.new(:key=>'London', :values=>
|
37
|
-
[{:year=>2011, :city=>'London',:value=>
|
37
|
+
[{:year=>2011, :city=>'London',:value=>5}]),
|
38
38
|
Rubyvis::NestedArray.new(:key=>'France', :values=>
|
39
|
-
[{:year=>2011, :city=>'France',:value=>
|
39
|
+
[{:year=>2011, :city=>'France',:value=>6}])
|
40
40
|
])
|
41
41
|
]
|
42
42
|
|
data/spec/rule_spec.rb
CHANGED
@@ -9,22 +9,21 @@ describe Rubyvis::Rule do
|
|
9
9
|
Rubyvis.Rule.should eql Rubyvis::Rule
|
10
10
|
end
|
11
11
|
it "should render equal to protovis 'rule-anchor.html' test" do
|
12
|
-
vis = Rubyvis::Panel.new()
|
13
|
-
|
14
|
-
|
12
|
+
vis = Rubyvis::Panel.new().
|
13
|
+
width(400).
|
14
|
+
height(300)
|
15
15
|
|
16
16
|
|
17
|
-
bar=vis.add(pv.Bar)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
bar=vis.add(pv.Bar).
|
18
|
+
data(["left", "top", "right", "bottom", "center"]).
|
19
|
+
width(300).
|
20
|
+
height(30).
|
21
|
+
left(40).
|
22
|
+
right(40).
|
23
|
+
top(lambda {self.index*60}).fill_style('red')
|
24
24
|
|
25
25
|
rule = bar.add(pv.Rule)
|
26
|
-
rule.anchor(lambda {|d| d}).add(pv.Label)
|
27
|
-
.text(lambda {|d| d})
|
26
|
+
rule.anchor(lambda {|d| d}).add(pv.Label).text(lambda {|d| d})
|
28
27
|
|
29
28
|
vis.render();
|
30
29
|
pv_out=fixture_svg_read("rule_anchor.svg")
|
data/spec/spec_helper.rb
CHANGED
@@ -154,8 +154,7 @@ Rspec::Matchers.define :have_same_svg_elements do |exp|
|
|
154
154
|
}
|
155
155
|
|
156
156
|
@error={:type=>"Undefined error"}
|
157
|
-
attrs.each_pair do |key,attrs|
|
158
|
-
|
157
|
+
attrs.each_pair do |key,attrs|
|
159
158
|
exp_elements=exp_xml.xpath("//#{key}")
|
160
159
|
obs_elements=obs_xml.xpath("//xmlns:#{key}")
|
161
160
|
if exp_elements.size!=obs_elements.size
|
@@ -163,22 +162,24 @@ Rspec::Matchers.define :have_same_svg_elements do |exp|
|
|
163
162
|
correct=false
|
164
163
|
break
|
165
164
|
end
|
165
|
+
|
166
166
|
exp_elements.each_with_index {|exp_data,i|
|
167
|
-
obs_data=obs_elements[i]
|
168
|
-
|
167
|
+
obs_data=obs_elements[i]
|
169
168
|
if obs_data.nil?
|
170
169
|
@error={:type=>"Missing obs", :exp=>exp_data, :i=>i}
|
171
170
|
correct=false
|
172
171
|
break
|
173
172
|
end
|
173
|
+
if exp_data.content!=obs_data.content
|
174
|
+
@error={:type=>"Content", :exp=>exp_data, :i=>i, :obs=>obs_data, :exp_attr=>exp_data.content, :obs_attr=>obs_data.content}
|
175
|
+
correct=false
|
176
|
+
break;
|
177
|
+
end
|
174
178
|
|
175
|
-
exp_data.content.should==obs_data.content
|
176
179
|
attrs.each do |attr,method|
|
177
|
-
|
178
180
|
eq=send("equal_#{method}",obs_data[attr],exp_data[attr])
|
179
181
|
if !eq
|
180
182
|
puts "Uneql attr: #{method}->#{attr}"
|
181
|
-
|
182
183
|
@error={:type=>"Incorrect data", :exp=>exp_data, :obs=>obs_data, :attr=>attr, :exp_attr=>exp_data[attr], :obs_attr=>obs_data[attr],:i=>i}
|
183
184
|
correct=false
|
184
185
|
break
|
data/spec/wedge_spec.rb
CHANGED
@@ -17,18 +17,18 @@ describe Rubyvis::Wedge do
|
|
17
17
|
t = 30
|
18
18
|
a = Rubyvis::Scale.linear(0, Rubyvis.sum(data)).range(0, 2 * Math::PI);
|
19
19
|
|
20
|
-
vis = Rubyvis::Panel.new()
|
21
|
-
|
22
|
-
|
20
|
+
vis = Rubyvis::Panel.new().
|
21
|
+
width(w).
|
22
|
+
height(h)
|
23
23
|
|
24
24
|
anchors=["outer","inner","start","center","end"]
|
25
25
|
|
26
|
-
vis.add(Rubyvis::Wedge)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
vis.add(Rubyvis::Wedge).
|
27
|
+
data(data).
|
28
|
+
outer_radius(r).
|
29
|
+
angle(a).
|
30
|
+
anchor(lambda {anchors[self.index]}).add(pv.Label).
|
31
|
+
text(lambda {anchors[self.index]})
|
32
32
|
|
33
33
|
vis.render();
|
34
34
|
pv_out=fixture_svg_read("wedge_anchor.svg")
|
@@ -43,20 +43,20 @@ describe Rubyvis::Wedge do
|
|
43
43
|
t = 30
|
44
44
|
a = Rubyvis.Scale.linear(0, Rubyvis.sum(data)).range(0, 2 * Math::PI)
|
45
45
|
|
46
|
-
@vis = Rubyvis::Panel.new()
|
47
|
-
|
48
|
-
|
46
|
+
@vis = Rubyvis::Panel.new().
|
47
|
+
width(w).
|
48
|
+
height(h)
|
49
49
|
|
50
|
-
@vis.add(Rubyvis::Wedge)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
50
|
+
@vis.add(Rubyvis::Wedge).
|
51
|
+
data(data).
|
52
|
+
inner_radius(r - t).
|
53
|
+
outer_radius(r).
|
54
|
+
angle(a).
|
55
|
+
title(lambda {|d| d}).
|
56
|
+
anchor("outer").add(Rubyvis::Label).
|
57
|
+
visible(lambda {|d| d>0.05}).
|
58
|
+
text_margin(t + 5).
|
59
|
+
text(lambda {|d| "%0.2f" % d})
|
60
60
|
@vis.render();
|
61
61
|
|
62
62
|
@pv_out=fixture_svg_read("wedge_donut.svg")
|