rubyvis 0.3.6 → 0.4.0
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 +16 -0
- data/Manifest.txt +61 -0
- data/README.txt +9 -7
- data/Rakefile +1 -1
- data/lib/rubyvis.rb +3 -17
- data/lib/rubyvis/color/color.rb +11 -13
- data/lib/rubyvis/flatten.rb +5 -7
- data/lib/rubyvis/layout/stack.rb +15 -10
- data/lib/rubyvis/mark.rb +10 -2
- data/lib/rubyvis/mark/area.rb +5 -3
- data/lib/rubyvis/mark/line.rb +4 -3
- data/lib/rubyvis/mark/panel.rb +8 -3
- data/lib/rubyvis/mark/rule.rb +1 -0
- data/lib/rubyvis/scene/svg_area.rb +17 -17
- data/lib/rubyvis/scene/svg_curve.rb +8 -5
- data/lib/rubyvis/scene/svg_line.rb +32 -29
- data/lib/rubyvis/scene/svg_scene.rb +3 -5
- data/lib/rubyvis/scene/svg_wedge.rb +4 -3
- data/lib/rubyvis/vector.rb +104 -0
- data/spec/anchor_spec.rb +29 -0
- data/spec/area_spec.rb +83 -0
- data/spec/bar_spec.rb +3 -0
- data/spec/color_spec.rb +13 -1
- data/spec/dot_spec.rb +41 -0
- data/spec/fixtures/anchor.html +25 -0
- data/spec/fixtures/anchor.svg +1 -0
- data/spec/fixtures/area-segmented.html +29 -0
- data/spec/fixtures/area_interpolation.html +66 -0
- data/spec/fixtures/area_interpolation.svg +1 -0
- data/spec/fixtures/area_segmented.svg +1 -0
- data/spec/fixtures/dot-anchor.html +33 -0
- data/spec/fixtures/dot_anchor.svg +1 -0
- data/spec/fixtures/layers.js +28 -0
- data/spec/fixtures/layout_arc.svg +1 -0
- data/spec/fixtures/layout_cluster.html +39 -0
- data/spec/fixtures/layout_cluster.svg +1 -0
- data/spec/fixtures/layout_cluster_left_group_2.html +39 -0
- data/spec/fixtures/layout_cluster_left_group_2.svg +1 -0
- data/spec/fixtures/layout_grid.html +34 -0
- data/spec/fixtures/layout_grid.svg +1 -0
- data/spec/fixtures/layout_horizon.svg +24 -0
- data/spec/fixtures/layout_indent.html +39 -0
- data/spec/fixtures/layout_indent.svg +1 -0
- data/spec/fixtures/layout_matrix.svg +1 -0
- data/spec/fixtures/layout_pack.html +38 -0
- data/spec/fixtures/layout_pack.svg +1 -0
- data/spec/fixtures/layout_partition_fill.html +40 -0
- data/spec/fixtures/layout_partition_fill.svg +32 -0
- data/spec/fixtures/layout_tree_orient_left.html +36 -0
- data/spec/fixtures/layout_tree_orient_left.svg +1 -0
- data/spec/fixtures/layout_tree_orient_radial_breadth_20.html +39 -0
- data/spec/fixtures/layout_tree_orient_radial_breadth_20.svg +1 -0
- data/spec/fixtures/layout_tree_orient_top.svg +1 -0
- data/spec/fixtures/layout_treemap.svg +1 -0
- data/spec/fixtures/line_interpolation.html +63 -0
- data/spec/fixtures/line_interpolation.svg +1 -0
- data/spec/fixtures/line_interpolation_segmented.html +65 -0
- data/spec/fixtures/line_interpolation_segmented.svg +1 -0
- data/spec/fixtures/protovis-r3.3.js +287 -0
- data/spec/fixtures/rule-anchor.html +33 -0
- data/spec/fixtures/rule_anchor.svg +1 -0
- data/spec/fixtures/stack-expand.html +41 -0
- data/spec/fixtures/stack-silohouette.html +41 -0
- data/spec/fixtures/stack-wiggle.html +41 -0
- data/spec/fixtures/stack_expand.svg +1 -0
- data/spec/fixtures/stack_silohouette.svg +1 -0
- data/spec/fixtures/stack_wiggle.svg +1 -0
- data/spec/fixtures/svgscene.html +26 -0
- data/spec/fixtures/wedge-anchor.html +33 -0
- data/spec/fixtures/wedge-donut.html +35 -0
- data/spec/fixtures/wedge_anchor.svg +1 -0
- data/spec/fixtures/wedge_donut.svg +1 -0
- data/spec/flatten_spec.rb +47 -0
- data/spec/layout_arc_spec.rb +7 -26
- data/spec/layout_cluster_spec.rb +52 -0
- data/spec/layout_grid_spec.rb +40 -0
- data/spec/layout_horizon_spec.rb +6 -25
- data/spec/layout_indent_spec.rb +53 -0
- data/spec/layout_matrix_spec.rb +25 -52
- data/spec/layout_pack_spec.rb +49 -0
- data/spec/layout_partition_spec.rb +45 -0
- data/spec/layout_stack_spec.rb +60 -0
- data/spec/layout_tree_spec.rb +56 -0
- data/spec/layout_treemap_spec.rb +41 -0
- data/spec/line_spec.rb +118 -0
- data/spec/mark_spec.rb +4 -0
- data/spec/panel_spec.rb +12 -1
- data/spec/rule_spec.rb +34 -0
- data/spec/spec_helper.rb +158 -3
- data/spec/vector_spec.rb +36 -0
- data/spec/wedge_spec.rb +66 -0
- metadata +67 -14
- metadata.gz.sig +0 -0
data/spec/spec_helper.rb
CHANGED
@@ -16,6 +16,60 @@ require 'nokogiri'
|
|
16
16
|
|
17
17
|
$PROTOVIS_DIR=File.dirname(__FILE__)+"/../vendor/protovis/src"
|
18
18
|
module Rubyvis
|
19
|
+
module GeneralSpec
|
20
|
+
def fixture_svg_read(filename)
|
21
|
+
File.read(File.dirname(__FILE__)+"/fixtures/#{filename}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
module LayoutSpec
|
25
|
+
include GeneralSpec
|
26
|
+
def waves(n, m)
|
27
|
+
Rubyvis.range(n).map {|i|
|
28
|
+
Rubyvis.range(m).map {|j|
|
29
|
+
x = 20 * j / m.to_f - i / 3.0
|
30
|
+
x > 0 ? 2 * x * Math.exp(-0.5 * x) : 0
|
31
|
+
}
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
def net_nodes
|
39
|
+
[
|
40
|
+
OpenStruct.new({:node_value=>'A', :group=>1}),
|
41
|
+
OpenStruct.new({:node_value=>'B', :group=>1}),
|
42
|
+
OpenStruct.new({:node_value=>'C', :group=>2}),
|
43
|
+
OpenStruct.new({:node_value=>'D',:group=>2}),
|
44
|
+
OpenStruct.new({:node_value=>'E',:group=>3}),
|
45
|
+
OpenStruct.new({:node_value=>'F',:group=>3})
|
46
|
+
|
47
|
+
]
|
48
|
+
end
|
49
|
+
def net_links
|
50
|
+
[
|
51
|
+
OpenStruct.new({:source=>0,:target=>1, :value=>1}),
|
52
|
+
OpenStruct.new({:source=>1,:target=>2, :value=>1}),
|
53
|
+
OpenStruct.new({:source=>2,:target=>3, :value=>1}),
|
54
|
+
OpenStruct.new({:source=>3,:target=>4, :value=>1}),
|
55
|
+
OpenStruct.new({:source=>4,:target=>5, :value=>1}),
|
56
|
+
OpenStruct.new({:source=>1,:target=>0, :value=>1}),
|
57
|
+
OpenStruct.new({:source=>2,:target=>1, :value=>1}),
|
58
|
+
OpenStruct.new({:source=>3,:target=>2, :value=>1}),
|
59
|
+
OpenStruct.new({:source=>4,:target=>3, :value=>1}),
|
60
|
+
OpenStruct.new({:source=>5,:target=>4, :value=>1}),
|
61
|
+
]
|
62
|
+
end
|
63
|
+
def hier_nodes
|
64
|
+
Rubyvis.dom({:a=>1,:b=>{:ba=>2,:bb=>{:bba=>3}, :bc=>4}, :c=>5}).root("test").nodes
|
65
|
+
end
|
66
|
+
def hier_nodes_big
|
67
|
+
subtree={:a=>1,:b=>2,:c=>3,:d=>4}
|
68
|
+
|
69
|
+
Rubyvis.dom({:a=>subtree,:b=>subtree, :c=>subtree, :d=>subtree,:e=>subtree,:f=>subtree}).root("test").nodes()
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
19
73
|
class JohnsonLoader
|
20
74
|
begin
|
21
75
|
require 'johnson'
|
@@ -43,16 +97,115 @@ RSpec::Matchers.define :have_svg_attributes do |exp|
|
|
43
97
|
obs.attributes[k].value.should==v
|
44
98
|
}
|
45
99
|
end
|
100
|
+
failure_message_for_should do |obs|
|
101
|
+
"\n#{exp} attributes expected, but xml doesn't contains them \n#{obs.to_s}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# Include
|
106
|
+
# * rect
|
107
|
+
# * circle
|
108
|
+
# * text
|
109
|
+
# Using attributes and content
|
110
|
+
Rspec::Matchers.define :have_same_svg_elements do |exp|
|
111
|
+
def equal_float(a,b)
|
112
|
+
a||=0
|
113
|
+
b||=0
|
114
|
+
(a.to_f-b.to_f).abs<0.0001
|
115
|
+
end
|
116
|
+
def equal_string_nil(a,b)
|
117
|
+
a||="none"
|
118
|
+
b||="none"
|
119
|
+
a.to_s==b.to_s
|
120
|
+
end
|
121
|
+
def equal_string(a,b)
|
122
|
+
a.to_s==b.to_s
|
123
|
+
end
|
124
|
+
def path_scan(path)
|
125
|
+
path.scan(/([MmCcZzLlHhVvSsQqTtAa, ])(\d+(?:\.\d+)?)/).map {|v|
|
126
|
+
v[0]="," if v[0]==" "
|
127
|
+
v[1]=v[1].to_f
|
128
|
+
v
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
def equal_path(a,b)
|
133
|
+
path_a=path_scan(a)
|
134
|
+
path_b=path_scan(b)
|
135
|
+
correct=true
|
136
|
+
path_a.each_with_index do |v,i|
|
137
|
+
if (v[0]!=path_b[i][0]) or (v[1]-path_b[i][1]).abs>0.001
|
138
|
+
correct=false
|
139
|
+
break
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
correct
|
144
|
+
end
|
145
|
+
match do |obs|
|
146
|
+
obs_xml=Nokogiri::XML(obs)
|
147
|
+
exp_xml=Nokogiri::XML(exp)
|
148
|
+
correct=true
|
149
|
+
attrs={
|
150
|
+
"circle"=>{'fill'=>:string_nil, 'fill-opacity'=>:float, 'cx'=>:float,'stroke'=>:string_nil, 'stroke-opacity'=>:string, 'cy'=>:float,'r'=>:float},
|
151
|
+
"rect"=>{"x"=>:float,"y"=>:float,"width"=>:float,"height"=>:float, 'fill'=>:string_nil, 'fill-opacity'=>:float, 'stroke'=>:string_nil, 'stroke-opacity'=>:float},
|
152
|
+
"text"=>{"x"=>:float,"dx"=>:float,"y"=>:float,"dy"=>:float},
|
153
|
+
'path'=>{'d'=>:path, 'fill'=>:string_nil, 'fill-opacity'=>:float, 'stroke'=>:string_nil, 'stroke-opacity'=>:float, 'stroke-width'=>:float}
|
154
|
+
}
|
155
|
+
|
156
|
+
@error={:type=>"Undefined error"}
|
157
|
+
attrs.each_pair do |key,attrs|
|
158
|
+
|
159
|
+
exp_elements=exp_xml.xpath("//#{key}")
|
160
|
+
obs_elements=obs_xml.xpath("//xmlns:#{key}")
|
161
|
+
if exp_elements.size!=obs_elements.size
|
162
|
+
@error={:type=>"Different number of #{key} elements",:exp=>exp_elements.size, :obs=>obs_elements.size}
|
163
|
+
correct=false
|
164
|
+
break
|
165
|
+
end
|
166
|
+
exp_elements.each_with_index {|exp_data,i|
|
167
|
+
obs_data=obs_elements[i]
|
168
|
+
|
169
|
+
if obs_data.nil?
|
170
|
+
@error={:type=>"Missing obs", :exp=>exp_data, :i=>i}
|
171
|
+
correct=false
|
172
|
+
break
|
173
|
+
end
|
174
|
+
|
175
|
+
exp_data.content.should==obs_data.content
|
176
|
+
attrs.each do |attr,method|
|
177
|
+
|
178
|
+
eq=send("equal_#{method}",obs_data[attr],exp_data[attr])
|
179
|
+
if !eq
|
180
|
+
puts "Uneql attr: #{method}->#{attr}"
|
181
|
+
|
182
|
+
@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
|
+
correct=false
|
184
|
+
break
|
185
|
+
end
|
186
|
+
end
|
187
|
+
if !correct
|
188
|
+
break
|
189
|
+
end
|
190
|
+
}
|
191
|
+
end
|
192
|
+
correct
|
193
|
+
end
|
194
|
+
failure_message_for_should do |obs|
|
195
|
+
"#{@error[:type]}: #{@error[:exp].to_s} expected, but #{@error[:obs]} retrieved, on attr #{@error[:attr]} -> #{@error[:i]} : #{@error[:exp_attr]} <> #{@error[:obs_attr]}"
|
196
|
+
end
|
197
|
+
|
46
198
|
end
|
47
199
|
Rspec::Matchers.define :have_same_position do |exp|
|
48
200
|
match do |obs|
|
49
201
|
correct=true
|
50
202
|
attrs={
|
51
203
|
"circle"=>['cx','cy','r'],
|
52
|
-
"rect"=>["x","y","width","height"]
|
204
|
+
"rect"=>["x","y","width","height"],
|
205
|
+
"text"=>["x","dx","y","dy","transform"]
|
53
206
|
}
|
54
207
|
attrs[exp.name].each do |attr|
|
55
|
-
if (obs[attr].to_f - exp[attr].to_f)>0.0001
|
208
|
+
if (obs[attr].to_f - exp[attr].to_f).abs>0.0001
|
56
209
|
correct=false
|
57
210
|
break
|
58
211
|
end
|
@@ -60,6 +213,8 @@ Rspec::Matchers.define :have_same_position do |exp|
|
|
60
213
|
correct
|
61
214
|
end
|
62
215
|
end
|
216
|
+
|
217
|
+
|
63
218
|
RSpec::Matchers.define :have_path_data_close_to do |exp|
|
64
219
|
def path_scan(path)
|
65
220
|
path.scan(/([MmCcZzLlHhVvSsQqTtAa, ])(\d+(?:\.\d+)?)/).map {|v|
|
@@ -67,7 +222,7 @@ RSpec::Matchers.define :have_path_data_close_to do |exp|
|
|
67
222
|
v[1]=v[1].to_f
|
68
223
|
v
|
69
224
|
}
|
70
|
-
|
225
|
+
end
|
71
226
|
match do |obs|
|
72
227
|
correct=true
|
73
228
|
obs_array=path_scan(obs.attributes["d"].value)
|
data/spec/vector_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__)+"/spec_helper.rb")
|
2
|
+
describe Rubyvis::Vector do
|
3
|
+
before do
|
4
|
+
@x1,@x2,@y1,@y2=rand(10)+1,rand(10)+1,rand(10)+1,rand(10)+1
|
5
|
+
@v1=Rubyvis::Vector.new(@x1,@y1)
|
6
|
+
@v2=Rubyvis::Vector.new(@x2,@y2)
|
7
|
+
end
|
8
|
+
it "should return the same as Rubyvis.vector" do
|
9
|
+
Rubyvis.vector(@x1,@y1).should== @v1
|
10
|
+
end
|
11
|
+
it "method perp" do
|
12
|
+
@v1.perp.should==Rubyvis::Vector.new(-@y1,@x1)
|
13
|
+
end
|
14
|
+
it "method times" do
|
15
|
+
times=rand(10)+1
|
16
|
+
@v1.times(times).should==Rubyvis::Vector.new(@x1*times,@y1*times)
|
17
|
+
end
|
18
|
+
it "method length" do
|
19
|
+
l=Math.sqrt(@x1*@x1+@y1*@y1)
|
20
|
+
@v1.length.should eq l
|
21
|
+
end
|
22
|
+
it "method norm" do
|
23
|
+
l=@v1.length
|
24
|
+
@v1.norm.should==@v1.times(1/l.to_f)
|
25
|
+
end
|
26
|
+
it "method plus" do
|
27
|
+
@v1.plus(@v2).should==Rubyvis::Vector.new(@x1+@x2,@y1+@y2)
|
28
|
+
end
|
29
|
+
it "method minus" do
|
30
|
+
@v1.minus(@v2).should==Rubyvis::Vector.new(@x1-@x2,@y1-@y2)
|
31
|
+
end
|
32
|
+
it "method dot" do
|
33
|
+
@v1.dot(@v2).should==@x1*@x2+@y1*@y2
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
data/spec/wedge_spec.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__)+"/spec_helper.rb")
|
2
|
+
describe Rubyvis::Wedge do
|
3
|
+
include Rubyvis::GeneralSpec
|
4
|
+
it "should have correct properties" do
|
5
|
+
props=[:angle, :antialias, :bottom, :cursor, :data, :end_angle, :events, :fill_style, :id, :inner_radius, :left, :line_width, :outer_radius, :reverse, :right, :start_angle, :stroke_style, :title, :top, :visible].inject({}) {|ac, v| ac[v]=true; ac}
|
6
|
+
Rubyvis::Wedge.properties.should==props
|
7
|
+
end
|
8
|
+
it "Rubyvis.Wedge be the same as Rubyvis::Wedge" do
|
9
|
+
Rubyvis.Wedge.should eql Rubyvis::Wedge
|
10
|
+
end
|
11
|
+
it "should render equal to protovis 'wedge-anchor.html' test" do
|
12
|
+
|
13
|
+
data = Rubyvis.range(5).map {|x| x}
|
14
|
+
w = 400
|
15
|
+
h = 400
|
16
|
+
r = w / 2.0
|
17
|
+
t = 30
|
18
|
+
a = Rubyvis::Scale.linear(0, Rubyvis.sum(data)).range(0, 2 * Math::PI);
|
19
|
+
|
20
|
+
vis = Rubyvis::Panel.new()
|
21
|
+
.width(w)
|
22
|
+
.height(h)
|
23
|
+
|
24
|
+
anchors=["outer","inner","start","center","end"]
|
25
|
+
|
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
|
+
|
33
|
+
vis.render();
|
34
|
+
pv_out=fixture_svg_read("wedge_anchor.svg")
|
35
|
+
vis.to_svg.should have_same_svg_elements(pv_out)
|
36
|
+
|
37
|
+
end
|
38
|
+
it "should render equal to protovis 'wedge-donut.html' test" do
|
39
|
+
data = Rubyvis.range(10).map {|x| (Math.sin(x)).abs}
|
40
|
+
w = 400
|
41
|
+
h = 400
|
42
|
+
r = w / 2.0
|
43
|
+
t = 30
|
44
|
+
a = Rubyvis.Scale.linear(0, Rubyvis.sum(data)).range(0, 2 * Math::PI)
|
45
|
+
|
46
|
+
@vis = Rubyvis::Panel.new()
|
47
|
+
.width(w)
|
48
|
+
.height(h)
|
49
|
+
|
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
|
+
@vis.render();
|
61
|
+
|
62
|
+
@pv_out=fixture_svg_read("wedge_donut.svg")
|
63
|
+
@vis.to_svg.should have_same_svg_elements(@pv_out)
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyvis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 31
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 0.4.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Claudio Bustos
|
@@ -36,7 +35,7 @@ cert_chain:
|
|
36
35
|
rpP0jjs0
|
37
36
|
-----END CERTIFICATE-----
|
38
37
|
|
39
|
-
date:
|
38
|
+
date: 2011-01-03 00:00:00 -03:00
|
40
39
|
default_executable:
|
41
40
|
dependencies:
|
42
41
|
- !ruby/object:Gem::Dependency
|
@@ -47,7 +46,6 @@ dependencies:
|
|
47
46
|
requirements:
|
48
47
|
- - ">="
|
49
48
|
- !ruby/object:Gem::Version
|
50
|
-
hash: 3
|
51
49
|
segments:
|
52
50
|
- 0
|
53
51
|
version: "0"
|
@@ -61,7 +59,6 @@ dependencies:
|
|
61
59
|
requirements:
|
62
60
|
- - ">="
|
63
61
|
- !ruby/object:Gem::Version
|
64
|
-
hash: 3
|
65
62
|
segments:
|
66
63
|
- 0
|
67
64
|
version: "0"
|
@@ -75,7 +72,6 @@ dependencies:
|
|
75
72
|
requirements:
|
76
73
|
- - ">="
|
77
74
|
- !ruby/object:Gem::Version
|
78
|
-
hash: 3
|
79
75
|
segments:
|
80
76
|
- 0
|
81
77
|
version: "0"
|
@@ -89,7 +85,6 @@ dependencies:
|
|
89
85
|
requirements:
|
90
86
|
- - ">="
|
91
87
|
- !ruby/object:Gem::Version
|
92
|
-
hash: 3
|
93
88
|
segments:
|
94
89
|
- 2
|
95
90
|
- 0
|
@@ -104,7 +99,6 @@ dependencies:
|
|
104
99
|
requirements:
|
105
100
|
- - ">="
|
106
101
|
- !ruby/object:Gem::Version
|
107
|
-
hash: 47
|
108
102
|
segments:
|
109
103
|
- 2
|
110
104
|
- 8
|
@@ -112,7 +106,7 @@ dependencies:
|
|
112
106
|
version: 2.8.0
|
113
107
|
type: :development
|
114
108
|
version_requirements: *id005
|
115
|
-
description: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a
|
109
|
+
description: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a Javascript visualization toolkit.
|
116
110
|
email:
|
117
111
|
- clbustos_at_gmail.com
|
118
112
|
executables: []
|
@@ -231,25 +225,84 @@ files:
|
|
231
225
|
- lib/rubyvis/scene/svg_wedge.rb
|
232
226
|
- lib/rubyvis/sceneelement.rb
|
233
227
|
- lib/rubyvis/transform.rb
|
228
|
+
- lib/rubyvis/vector.rb
|
234
229
|
- spec/anchor_spec.rb
|
235
230
|
- spec/area_spec.rb
|
236
231
|
- spec/bar_spec.rb
|
237
232
|
- spec/color_spec.rb
|
238
233
|
- spec/dom_spec.rb
|
234
|
+
- spec/dot_spec.rb
|
235
|
+
- spec/fixtures/anchor.html
|
236
|
+
- spec/fixtures/anchor.svg
|
237
|
+
- spec/fixtures/area-segmented.html
|
238
|
+
- spec/fixtures/area_interpolation.html
|
239
|
+
- spec/fixtures/area_interpolation.svg
|
240
|
+
- spec/fixtures/area_segmented.svg
|
241
|
+
- spec/fixtures/dot-anchor.html
|
242
|
+
- spec/fixtures/dot_anchor.svg
|
243
|
+
- spec/fixtures/layers.js
|
244
|
+
- spec/fixtures/layout_arc.svg
|
245
|
+
- spec/fixtures/layout_cluster.html
|
246
|
+
- spec/fixtures/layout_cluster.svg
|
247
|
+
- spec/fixtures/layout_cluster_left_group_2.html
|
248
|
+
- spec/fixtures/layout_cluster_left_group_2.svg
|
249
|
+
- spec/fixtures/layout_grid.html
|
250
|
+
- spec/fixtures/layout_grid.svg
|
251
|
+
- spec/fixtures/layout_horizon.svg
|
252
|
+
- spec/fixtures/layout_indent.html
|
253
|
+
- spec/fixtures/layout_indent.svg
|
254
|
+
- spec/fixtures/layout_matrix.svg
|
255
|
+
- spec/fixtures/layout_pack.html
|
256
|
+
- spec/fixtures/layout_pack.svg
|
257
|
+
- spec/fixtures/layout_partition_fill.html
|
258
|
+
- spec/fixtures/layout_partition_fill.svg
|
259
|
+
- spec/fixtures/layout_tree_orient_left.html
|
260
|
+
- spec/fixtures/layout_tree_orient_left.svg
|
261
|
+
- spec/fixtures/layout_tree_orient_radial_breadth_20.html
|
262
|
+
- spec/fixtures/layout_tree_orient_radial_breadth_20.svg
|
263
|
+
- spec/fixtures/layout_tree_orient_top.svg
|
264
|
+
- spec/fixtures/layout_treemap.svg
|
265
|
+
- spec/fixtures/line_interpolation.html
|
266
|
+
- spec/fixtures/line_interpolation.svg
|
267
|
+
- spec/fixtures/line_interpolation_segmented.html
|
268
|
+
- spec/fixtures/line_interpolation_segmented.svg
|
269
|
+
- spec/fixtures/protovis-r3.3.js
|
270
|
+
- spec/fixtures/rule-anchor.html
|
271
|
+
- spec/fixtures/rule_anchor.svg
|
272
|
+
- spec/fixtures/stack-expand.html
|
273
|
+
- spec/fixtures/stack-silohouette.html
|
274
|
+
- spec/fixtures/stack-wiggle.html
|
275
|
+
- spec/fixtures/stack_expand.svg
|
276
|
+
- spec/fixtures/stack_silohouette.svg
|
277
|
+
- spec/fixtures/stack_wiggle.svg
|
278
|
+
- spec/fixtures/svgscene.html
|
279
|
+
- spec/fixtures/wedge-anchor.html
|
280
|
+
- spec/fixtures/wedge-donut.html
|
281
|
+
- spec/fixtures/wedge_anchor.svg
|
282
|
+
- spec/fixtures/wedge_donut.svg
|
283
|
+
- spec/flatten_spec.rb
|
239
284
|
- spec/histogram_spec.rb
|
240
285
|
- spec/internal_spec.rb
|
241
286
|
- spec/javascript_behaviour_spec.rb
|
242
287
|
- spec/label_spec.rb
|
243
288
|
- spec/layout_arc_spec.rb
|
289
|
+
- spec/layout_cluster_spec.rb
|
290
|
+
- spec/layout_grid_spec.rb
|
244
291
|
- spec/layout_horizon_spec.rb
|
292
|
+
- spec/layout_indent_spec.rb
|
245
293
|
- spec/layout_matrix_spec.rb
|
294
|
+
- spec/layout_pack_spec.rb
|
295
|
+
- spec/layout_partition_spec.rb
|
246
296
|
- spec/layout_stack_spec.rb
|
297
|
+
- spec/layout_tree_spec.rb
|
298
|
+
- spec/layout_treemap_spec.rb
|
247
299
|
- spec/line_spec.rb
|
248
300
|
- spec/mark_spec.rb
|
249
301
|
- spec/nest_spec.rb
|
250
302
|
- spec/panel_spec.rb
|
251
303
|
- spec/readme_spec.rb
|
252
304
|
- spec/ruby_api_spec.rb
|
305
|
+
- spec/rule_spec.rb
|
253
306
|
- spec/scale_linear_datetime_spec.rb
|
254
307
|
- spec/scale_linear_spec.rb
|
255
308
|
- spec/scale_log_spec.rb
|
@@ -257,6 +310,8 @@ files:
|
|
257
310
|
- spec/scale_spec.rb
|
258
311
|
- spec/spec.opts
|
259
312
|
- spec/spec_helper.rb
|
313
|
+
- spec/vector_spec.rb
|
314
|
+
- spec/wedge_spec.rb
|
260
315
|
- vendor/protovis/protovis-r3.3.js
|
261
316
|
- vendor/protovis/src/behavior/Behavior.js
|
262
317
|
- vendor/protovis/src/behavior/Drag.js
|
@@ -371,7 +426,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
371
426
|
requirements:
|
372
427
|
- - ">="
|
373
428
|
- !ruby/object:Gem::Version
|
374
|
-
hash: 3
|
375
429
|
segments:
|
376
430
|
- 0
|
377
431
|
version: "0"
|
@@ -380,7 +434,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
434
|
requirements:
|
381
435
|
- - ">="
|
382
436
|
- !ruby/object:Gem::Version
|
383
|
-
hash: 3
|
384
437
|
segments:
|
385
438
|
- 0
|
386
439
|
version: "0"
|
@@ -390,6 +443,6 @@ rubyforge_project: rubyvis
|
|
390
443
|
rubygems_version: 1.3.7
|
391
444
|
signing_key:
|
392
445
|
specification_version: 3
|
393
|
-
summary: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a
|
446
|
+
summary: Ruby port of Protovis[http://vis.stanford.edu/protovis/], a Javascript visualization toolkit.
|
394
447
|
test_files: []
|
395
448
|
|