rubyvis 0.2.0 → 0.2.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 +2 -1
- data/History.txt +14 -0
- data/Manifest.txt +5 -2
- data/README.txt +8 -2
- data/examples/antibiotics/{antibiotics.rb → antibiotics_scatter.rb} +1 -0
- data/examples/antibiotics/antibiotics_wedge.rb +121 -0
- data/examples/area.rb +42 -35
- data/examples/area_interpolation.rb +3 -3
- data/examples/barley/barley.rb +6 -2
- data/examples/cars/cars.rb +90 -0
- data/examples/cars/cars_data.rb +409 -0
- data/examples/crimea/crimea_grouped_bar.rb +2 -0
- data/examples/crimea/crimea_line.rb +3 -0
- data/examples/first_protovis_api.rb +2 -2
- data/examples/first_rbp_api.rb +2 -2
- data/lib/rubyvis.rb +1 -2
- data/lib/rubyvis/internals.rb +30 -1
- data/lib/rubyvis/javascript_behaviour.rb +8 -2
- data/lib/rubyvis/layout.rb +7 -1
- data/lib/rubyvis/layout/stack.rb +3 -3
- data/lib/rubyvis/mark.rb +173 -84
- data/lib/rubyvis/mark/area.rb +2 -3
- data/lib/rubyvis/mark/image.rb +1 -1
- data/lib/rubyvis/mark/line.rb +1 -1
- data/lib/rubyvis/mark/shorcut_methods.rb +93 -5
- data/lib/rubyvis/mark/wedge.rb +15 -10
- data/lib/rubyvis/scale/ordinal.rb +19 -0
- data/lib/rubyvis/scale/quantitative.rb +1 -0
- data/lib/rubyvis/scene/svg_line.rb +2 -2
- data/lib/rubyvis/scene/svg_scene.rb +1 -1
- data/spec/anchor_spec.rb +4 -4
- data/spec/internal_spec.rb +5 -0
- data/spec/line_spec.rb +2 -2
- data/spec/readme_spec.rb +38 -0
- data/spec/spec.opts +1 -1
- data/web/Rakefile +6 -5
- data/web/build_site.rb +3 -2
- metadata +9 -5
- metadata.gz.sig +0 -0
- data/examples/image.svg +0 -1
@@ -1,3 +1,5 @@
|
|
1
|
+
# = Crimeam War deaths (Grouped bar)
|
2
|
+
# Florence Nightingale used a coxcomb diagram to emphasize the number of deaths due to “preventible or mitigable zymotic diseases”. This graph shows data using a stacked bar chart.
|
1
3
|
$:.unshift(File.dirname(__FILE__)+"/../../lib")
|
2
4
|
require 'rubyvis'
|
3
5
|
require 'ostruct'
|
@@ -1,3 +1,6 @@
|
|
1
|
+
# = Crimeam War deaths (Grouped bar)
|
2
|
+
# Florence Nightingale used a coxcomb diagram to emphasize the number of deaths due to “preventible or mitigable zymotic diseases”. This graph shows data using a line chart.
|
3
|
+
|
1
4
|
$:.unshift(File.dirname(__FILE__)+"/../../lib")
|
2
5
|
require 'rubyvis'
|
3
6
|
require 'ostruct'
|
@@ -1,6 +1,6 @@
|
|
1
|
-
# = First example
|
1
|
+
# = First example (Protovis API)
|
2
2
|
# This is the protovis API version of "Getting Started" example of Protovis introduction.
|
3
|
-
# On this example we
|
3
|
+
# On this example we build a bar chart using panel and bar marks.
|
4
4
|
# A mark represents a set of graphical elements that share data and visual encodings. Although marks are simple by themselves, you can combine them in interesting ways to make rich, interactive visualizations
|
5
5
|
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
6
6
|
require 'rubyvis'
|
data/examples/first_rbp_api.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# = First example
|
1
|
+
# = First example (RBP API)
|
2
2
|
# This is the RBP API version of "Getting Started" example of Protovis introduction.
|
3
|
-
# On this example we
|
3
|
+
# On this example we build a bar chart using panel and bar marks.
|
4
4
|
# A mark represents a set of graphical elements that share data and visual encodings. Although marks are simple by themselves, you can combine them in interesting ways to make rich, interactive visualizations
|
5
5
|
$:.unshift(File.dirname(__FILE__)+"/../lib")
|
6
6
|
require 'rubyvis'
|
data/lib/rubyvis.rb
CHANGED
@@ -22,11 +22,10 @@ require 'rubyvis/scene/svg_scene'
|
|
22
22
|
require 'rubyvis/transform'
|
23
23
|
|
24
24
|
|
25
|
-
|
26
25
|
module Rubyvis
|
27
26
|
@document=nil
|
28
27
|
# Rubyvis version
|
29
|
-
VERSION = '0.2.
|
28
|
+
VERSION = '0.2.1'
|
30
29
|
# Protovis API on which current Rubyvis is based
|
31
30
|
PROTOVIS_API_VERSION='3.3'
|
32
31
|
# You actually can do it! http://snipplr.com/view/2137/uses-for-infinity-in-ruby/
|
data/lib/rubyvis/internals.rb
CHANGED
@@ -229,5 +229,34 @@ module Rubyvis
|
|
229
229
|
def self.keys(map)
|
230
230
|
map.keys
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
|
+
# Returns a map constructed from the specified <tt>keys</tt>, using the
|
234
|
+
# function <tt>f</tt> to compute the value for each key. The single argument to
|
235
|
+
# the value function is the key. The callback is invoked only for indexes of
|
236
|
+
# the array which have assigned values; it is not invoked for indexes which
|
237
|
+
# have been deleted or which have never been assigned values.
|
238
|
+
#
|
239
|
+
# <p>For example, this expression creates a map from strings to string length:
|
240
|
+
#
|
241
|
+
# <pre>pv.dict(["one", "three", "seventeen"], function(s) s.length)</pre>
|
242
|
+
#
|
243
|
+
# The returned value is <tt>{one: 3, three: 5, seventeen: 9}</tt>. Accessor
|
244
|
+
# functions can refer to <tt>this.index</tt>.
|
245
|
+
#
|
246
|
+
# * @param {array} keys an array.
|
247
|
+
# * @param {function} f a value function.
|
248
|
+
# * @returns a map from keys to values.
|
249
|
+
|
250
|
+
|
251
|
+
def self.dict(keys, f)
|
252
|
+
m = {}
|
253
|
+
keys.size.times do |i|
|
254
|
+
unless keys[i].nil?
|
255
|
+
k=keys[i]
|
256
|
+
o=o_index(i)
|
257
|
+
m[k]=f.js_call(o,k)
|
258
|
+
end
|
259
|
+
end
|
260
|
+
m
|
261
|
+
end
|
233
262
|
end
|
@@ -57,7 +57,8 @@ class Proc
|
|
57
57
|
def js_apply(obj,args)
|
58
58
|
arguments=args.dup
|
59
59
|
# Modify numbers of args to works with arity
|
60
|
-
min_args=self.arity>0 ? self.arity : (-self.arity)-1
|
60
|
+
min_args=self.arity > 0 ? self.arity : (-self.arity)-1
|
61
|
+
|
61
62
|
if args.size > min_args and self.arity>0
|
62
63
|
arguments=arguments[0,self.arity]
|
63
64
|
elsif args.size < min_args
|
@@ -65,7 +66,12 @@ class Proc
|
|
65
66
|
end
|
66
67
|
#puts "#{args}->#{arguments} (#{self.arity})"
|
67
68
|
if self.arity==0
|
68
|
-
|
69
|
+
if RUBY_VERSION <="1.9.2" # CHECK THIS
|
70
|
+
obj.instance_eval(&self)
|
71
|
+
else
|
72
|
+
obj.instance_exec(&self)
|
73
|
+
|
74
|
+
end
|
69
75
|
else
|
70
76
|
obj.instance_exec(*arguments,&self)
|
71
77
|
end
|
data/lib/rubyvis/layout.rb
CHANGED
@@ -3,7 +3,13 @@ module Rubyvis
|
|
3
3
|
Rubyvis::Layout
|
4
4
|
end
|
5
5
|
class Layout < Rubyvis::Panel
|
6
|
-
@properties=
|
6
|
+
@properties=Panel.properties.dup
|
7
|
+
def layout_build_properties(s,properties)
|
8
|
+
mark_build_properties(s,properties)
|
9
|
+
end
|
10
|
+
def layout_build_implied(s)
|
11
|
+
panel_build_implied(s)
|
12
|
+
end
|
7
13
|
def self.attr_accessor_dsl(*attr)
|
8
14
|
attr.each do |sym|
|
9
15
|
if sym.is_a? Array
|
data/lib/rubyvis/layout/stack.rb
CHANGED
@@ -74,10 +74,10 @@ module Rubyvis
|
|
74
74
|
# <tt>crimea</tt>); the second argument is the layer data (a string in
|
75
75
|
# <tt>causes</tt>). Additional arguments specify the data of enclosing panels, if any.
|
76
76
|
class Stack < Rubyvis::Layout
|
77
|
-
@properties=
|
78
|
-
|
79
|
-
attr_accessor :_x, :_y, :_values, :prop
|
77
|
+
@properties=Layout.properties.dup
|
80
78
|
attr_accessor_dsl :orient,:offset, :order, :layers
|
79
|
+
attr_accessor :_x, :_y, :_values, :prop
|
80
|
+
|
81
81
|
def self.defaults
|
82
82
|
Stack.new.extend(Layout.defaults).orient("bottom-left").offset("zero").layers([[]])
|
83
83
|
end
|
data/lib/rubyvis/mark.rb
CHANGED
@@ -1,62 +1,117 @@
|
|
1
1
|
|
2
2
|
module Rubyvis
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
3
|
+
# Constructs a new mark with default properties. Marks, with the exception of
|
4
|
+
# the root panel, are not typically constructed directly; instead, they are
|
5
|
+
# added to a panel or an existing mark via Mark#add
|
6
|
+
#
|
7
|
+
# Represents a data-driven graphical mark. The +Mark+ class is
|
8
|
+
# the base class for all graphical marks in Protovis; it does not provide any
|
9
|
+
# specific rendering functionality, but together with Panel establishes
|
10
|
+
# the core framework.
|
11
|
+
#
|
12
|
+
# Concrete mark types include familiar visual elements such as bars, lines
|
13
|
+
# and labels. Although a bar mark may be used to construct a bar chart, marks
|
14
|
+
# know nothing about charts; it is only through their specification and
|
15
|
+
# composition that charts are produced. These building blocks permit many
|
16
|
+
# combinatorial possibilities.
|
17
|
+
#
|
18
|
+
# Marks are associated with <b>data</b>: a mark is generated once per
|
19
|
+
# associated datum, mapping the datum to visual <b>properties</b> such as
|
20
|
+
# position and color. Thus, a single mark specification represents a set of
|
21
|
+
# visual elements that share the same data and visual encoding. The type of
|
22
|
+
# mark defines the names of properties and their meaning. A property may be
|
23
|
+
# static, ignoring the associated datum and returning a constant; or, it may be
|
24
|
+
# dynamic, derived from the associated datum or index. Such dynamic encodings
|
25
|
+
# can be specified succinctly using anonymous functions. Special properties
|
26
|
+
# called event handlers can be registered to add interactivity.
|
27
|
+
#
|
28
|
+
# Protovis uses <b>inheritance</b> to simplify the specification of related
|
29
|
+
# marks: a new mark can be derived from an existing mark, inheriting its
|
30
|
+
# properties. The new mark can then override properties to specify new
|
31
|
+
# behavior, potentially in terms of the old behavior. In this way, the old mark
|
32
|
+
# serves as the <b>prototype</b> for the new mark. Most mark types share the
|
33
|
+
# same basic properties for consistency and to facilitate inheritance.
|
34
|
+
#
|
35
|
+
# The prioritization of redundant properties is as follows:<ol>
|
36
|
+
#
|
37
|
+
# <li>If the <tt>width</tt> property is not specified (i.e., null), its value
|
38
|
+
# is the width of the parent panel, minus this mark's left and right margins;
|
39
|
+
# the left and right margins are zero if not specified.
|
40
|
+
#
|
41
|
+
# <li>Otherwise, if the <tt>right</tt> margin is not specified, its value is
|
42
|
+
# the width of the parent panel, minus this mark's width and left margin; the
|
43
|
+
# left margin is zero if not specified.
|
44
|
+
#
|
45
|
+
# <li>Otherwise, if the <tt>left</tt> property is not specified, its value is
|
46
|
+
# the width of the parent panel, minus this mark's width and the right margin.
|
47
|
+
#
|
48
|
+
# </ol>This prioritization is then duplicated for the <tt>height</tt>,
|
49
|
+
# <tt>bottom</tt> and <tt>top</tt> properties, respectively.
|
50
|
+
#
|
51
|
+
# While most properties are <i>variable</i>, some mark types, such as lines
|
52
|
+
# and areas, generate a single visual element rather than a distinct visual
|
53
|
+
# element per datum. With these marks, some properties may be <b>fixed</b>.
|
54
|
+
# Fixed properties can vary per mark, but not <i>per datum</i>! These
|
55
|
+
# properties are evaluated solely for the first (0-index) datum, and typically
|
56
|
+
# are specified as a constant. However, it is valid to use a function if the
|
57
|
+
# property varies between panels or is dynamically generated.
|
58
|
+
#
|
59
|
+
# == 'RBP' API
|
60
|
+
#
|
61
|
+
# Since version 0.2.0, you could use a new API to use marks
|
62
|
+
# , similar to one described on Brown's "Ruby Best Practices".
|
63
|
+
# === Set properties using blocks
|
64
|
+
# You could use a block to set a property, without using explicitly
|
65
|
+
# lambda statement. So
|
66
|
+
# area.width {|d| d*20}
|
67
|
+
# is the same as
|
68
|
+
# area.width lambda {|d| d*20}
|
69
|
+
# === Shortcuts methods
|
70
|
+
# The protovis API uses the chain method aproach. Every method which
|
71
|
+
# set a value on a object returns the same object. I maintain
|
72
|
+
# this approach, and you can do
|
73
|
+
#
|
74
|
+
# area.width(10).height(20).top(lambda {|d| d*10})
|
75
|
+
#
|
76
|
+
# To add a mark to another, you need to use +add+ method. This methods
|
77
|
+
# returns the new mark, so you can still use the chain methods API,
|
78
|
+
#
|
79
|
+
# area.width(10).height(20). # object is 'area'
|
80
|
+
# add(Rubyvis::Label). # object changed to new label
|
81
|
+
# text('hi') # text refers to new label
|
82
|
+
#
|
83
|
+
# In the spirit of RBP, I created several methods as shortcut for +add+:
|
84
|
+
# area(), bar(), dot(), image(), label(), line(), panel(), rule() and wedge().
|
85
|
+
# If you provide a block, it will be executed inside the context of current of new mark depending on block's parameter.
|
86
|
+
# * Without parameter: block executed inside context of new mark
|
87
|
+
# * With paramenter: block executed inside context of current mark.
|
88
|
+
# Parameter references the new mark
|
89
|
+
#
|
90
|
+
# ==Example
|
91
|
+
#
|
92
|
+
# *Without parameter*
|
93
|
+
# vis=Rubyvis::Panel.new do
|
94
|
+
# area do
|
95
|
+
# width 10 # width changed for area
|
96
|
+
# height 10 # height changed for area
|
97
|
+
# end
|
98
|
+
# end
|
99
|
+
#
|
100
|
+
# *Without parameter*
|
101
|
+
# vis=Rubyvis::Panel.new do
|
102
|
+
# area do |a|
|
103
|
+
# width 10 # width changed for panel
|
104
|
+
# a.height 10 # height changed for area
|
105
|
+
# end
|
106
|
+
# end
|
107
|
+
#
|
59
108
|
class Mark
|
109
|
+
# On ruby 1.8, we must delete #id method
|
110
|
+
# Is deprecated, so any good developer should'nt use it....
|
111
|
+
if RUBY_VERSION<"1.9"
|
112
|
+
undef_method :id
|
113
|
+
end
|
114
|
+
|
60
115
|
# Hash storing properties names for current Mark type.
|
61
116
|
@properties={}
|
62
117
|
|
@@ -130,7 +185,6 @@ module Rubyvis
|
|
130
185
|
def self.property_method(name, _def, func=nil, klass=nil)
|
131
186
|
return if klass.method_defined? name
|
132
187
|
klass.send(:define_method, name) do |*arguments,&block|
|
133
|
-
|
134
188
|
v,dummy = arguments
|
135
189
|
if block
|
136
190
|
v=block
|
@@ -200,7 +254,11 @@ module Rubyvis
|
|
200
254
|
# the index is set to the instance that triggered the event.
|
201
255
|
# @return [Integer]
|
202
256
|
def index
|
203
|
-
@index
|
257
|
+
if @index.nil?
|
258
|
+
Mark.index
|
259
|
+
else
|
260
|
+
@index
|
261
|
+
end
|
204
262
|
end
|
205
263
|
# Returns true if index attribute is set and not deleted
|
206
264
|
def index_defined?
|
@@ -234,8 +292,8 @@ module Rubyvis
|
|
234
292
|
end
|
235
293
|
|
236
294
|
|
237
|
-
#
|
238
|
-
# This is typically equivalent to
|
295
|
+
# Returns the current instance of this mark in the scene graph.
|
296
|
+
# This is typically equivalent to +self.scene[self.index]+, however if the scene or index is unset, the default instance of the mark is returned. If no default is set, the default is the last instance.
|
239
297
|
# Similarly, if the scene or index of the parent panel is unset, the default instance of this mark in the last instance of the enclosing panel is returned, and so on.
|
240
298
|
#
|
241
299
|
# @return a node in the scene graph.
|
@@ -243,9 +301,10 @@ module Rubyvis
|
|
243
301
|
scene=self.scene
|
244
302
|
scene||=self.parent.instance(-1).children[self.child_index]
|
245
303
|
|
246
|
-
index =
|
247
|
-
|
248
|
-
|
304
|
+
index = !self.index.nil? ? self.index : default_index
|
305
|
+
|
306
|
+
#puts "defined?: #{index_defined?} : type: #{type}, self.index: #{self.index}, default_index: #{default_index}, index:#{index}"
|
307
|
+
scene[index < 0 ? scene.size-1: index]
|
249
308
|
end
|
250
309
|
|
251
310
|
##
|
@@ -397,17 +456,15 @@ module Rubyvis
|
|
397
456
|
@scale=1
|
398
457
|
@scene=nil
|
399
458
|
if block
|
400
|
-
|
459
|
+
execute(&block)
|
460
|
+
#block.arity<1 ? self.instance_eval(&block) : block.call(self)
|
401
461
|
end
|
402
462
|
end
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
463
|
+
# Execute a block using this mark as a reference
|
464
|
+
def execute(&block)
|
408
465
|
|
409
|
-
|
410
|
-
|
466
|
+
block.arity<1 ? self.instance_eval(&block) : block.call(self)
|
467
|
+
end
|
411
468
|
# The mark type; a lower name. The type name controls rendering
|
412
469
|
# behavior, and unless the rendering engine is extended, must be one of the
|
413
470
|
# built-in concrete mark types: area, bar, dot, image, label, line, panel,
|
@@ -467,8 +524,28 @@ module Rubyvis
|
|
467
524
|
scene
|
468
525
|
end
|
469
526
|
|
527
|
+
|
528
|
+
# Returns the first instance of this mark in the scene graph. This
|
529
|
+
# method can only be called when the mark is bound to the scene graph (for
|
530
|
+
# example, from an event handler, or within a property function).
|
531
|
+
#
|
532
|
+
# * @returns a node in the scene graph.
|
533
|
+
def first
|
534
|
+
scene[0]
|
535
|
+
end
|
536
|
+
# Returns the last instance of this mark in the scene graph. This
|
537
|
+
# method can only be called when the mark is bound to the scene graph (for
|
538
|
+
# example, from an event handler, or within a property function). In addition,
|
539
|
+
# note that mark instances are built sequentially, so the last instance of this
|
540
|
+
# mark may not yet be constructed.
|
541
|
+
#
|
542
|
+
# * @returns a node in the scene graph.
|
543
|
+
def last
|
544
|
+
scene[scene.size - 1]
|
545
|
+
end
|
470
546
|
|
471
|
-
|
547
|
+
|
548
|
+
# Returns the previous instance of this mark in the scene graph, or
|
472
549
|
# nil if this is the first instance.
|
473
550
|
#
|
474
551
|
# @return a node in the scene graph, or nil.
|
@@ -487,6 +564,15 @@ module Rubyvis
|
|
487
564
|
s= par ? par.sibling : nil
|
488
565
|
(s and s.children) ? s.children[self.child_index][self.index] : nil
|
489
566
|
end
|
567
|
+
|
568
|
+
# Adds a new mark of the specified type to the enclosing parent panel,
|
569
|
+
# whilst simultaneously setting the prototype of the new mark
|
570
|
+
# to be this mark.
|
571
|
+
#
|
572
|
+
# * @param {function} type the type of mark to add; a constructor, such as
|
573
|
+
# +Rubyvis::Bar+
|
574
|
+
# * @returns {Mark} the new mark.
|
575
|
+
# * @see #extend
|
490
576
|
def add(type)
|
491
577
|
parent.add(type).extend(self)
|
492
578
|
end
|
@@ -526,13 +612,13 @@ module Rubyvis
|
|
526
612
|
a=self.scene.target.map {|s| puts "s:#{s.data}" if $DEBUG; s.data}
|
527
613
|
p a if $DEBUG
|
528
614
|
a
|
615
|
+
}).visible(lambda {
|
616
|
+
self.scene.target[index].visible
|
617
|
+
}).id(lambda {
|
618
|
+
self.scene.target[index].id
|
529
619
|
}).
|
530
|
-
visible(lambda {
|
531
|
-
self.scene.target[self.index].visible
|
532
|
-
}).
|
533
|
-
id(lambda {self.scene.target[self.index].id}).
|
534
620
|
left(lambda {
|
535
|
-
s = self.scene.target[
|
621
|
+
s = self.scene.target[index]
|
536
622
|
w = s.width
|
537
623
|
w||=0
|
538
624
|
if ['bottom','top','center'].include?(self.name)
|
@@ -577,7 +663,7 @@ module Rubyvis
|
|
577
663
|
'bottom'
|
578
664
|
end
|
579
665
|
})
|
580
|
-
|
666
|
+
anchor
|
581
667
|
end
|
582
668
|
|
583
669
|
|
@@ -685,7 +771,10 @@ module Rubyvis
|
|
685
771
|
parent=parent.parent
|
686
772
|
end
|
687
773
|
|
688
|
-
self.context( parent ? parent.scene : nil,
|
774
|
+
self.context( parent ? parent.scene : nil,
|
775
|
+
parent ? parent.index : -1,
|
776
|
+
lambda { render_render(root, 0,1) }
|
777
|
+
)
|
689
778
|
|
690
779
|
end
|
691
780
|
|
@@ -786,7 +875,7 @@ module Rubyvis
|
|
786
875
|
end
|
787
876
|
|
788
877
|
|
789
|
-
def context_apply(scene,index)
|
878
|
+
def context_apply(scene,index) # :nodoc:
|
790
879
|
Mark.scene=scene
|
791
880
|
Mark.index=index
|
792
881
|
return if(!scene)
|
@@ -819,7 +908,7 @@ module Rubyvis
|
|
819
908
|
end
|
820
909
|
|
821
910
|
end
|
822
|
-
def context_clear(scene,index)
|
911
|
+
def context_clear(scene,index) # :nodoc:
|
823
912
|
return if !scene
|
824
913
|
that=scene.mark
|
825
914
|
mark=nil
|
@@ -841,7 +930,7 @@ module Rubyvis
|
|
841
930
|
mark.index=nil
|
842
931
|
end while(mark=mark.parent)
|
843
932
|
end
|
844
|
-
def context(scene,index,f)
|
933
|
+
def context(scene,index,f) # :nodoc:
|
845
934
|
proto=Mark
|
846
935
|
stack=Mark.stack
|
847
936
|
oscene=Mark.scene
|
@@ -954,7 +1043,7 @@ module Rubyvis
|
|
954
1043
|
#
|
955
1044
|
# @param s a node in the scene graph; the instance of the mark to build.
|
956
1045
|
# @param properties an array of properties.
|
957
|
-
def build_properties(ss, props)
|
1046
|
+
def build_properties(ss, props) # :nodoc:
|
958
1047
|
#p props
|
959
1048
|
props.each do |prop|
|
960
1049
|
v=prop.value
|
@@ -967,7 +1056,7 @@ module Rubyvis
|
|
967
1056
|
end
|
968
1057
|
end
|
969
1058
|
# @todo implement
|
970
|
-
def event(type,handler)
|
1059
|
+
def event(type,handler) # :nodoc:
|
971
1060
|
#@_handlers[type]=handler
|
972
1061
|
self
|
973
1062
|
end
|