| Class | DataPoint |
| In: |
lib/SVG/Graph/DataPoint.rb
|
| Parent: | Object |
| OVERLAY | = | "OVERLAY" unless defined?(OVERLAY) |
| DEFAULT_SHAPE | = | lambda{|x,y,line| ["circle", { "cx" => x, "cy" => y, "r" => "2.5", "class" => "dataPoint#{line}" |
| CRITERIA | = | [] unless defined? CRITERIA |
# File lib/SVG/Graph/DataPoint.rb, line 11
11: def DataPoint.configure_shape_criteria(*matchers)
12: CRITERIA.push(*matchers)
13: end
# File lib/SVG/Graph/DataPoint.rb, line 18
18: def initialize(x, y, line)
19: @x = x
20: @y = y
21: @line = line
22: end
# File lib/SVG/Graph/DataPoint.rb, line 14
14: def DataPoint.reset_shape_criteria
15: CRITERIA.clear
16: end
# File lib/SVG/Graph/DataPoint.rb, line 23
23: def shape(description=nil)
24: shapes = CRITERIA.select {|criteria|
25: criteria.size == 2
26: }.collect {|regexp, proc|
27: proc.call(@x, @y, @line) if description =~ regexp
28: }.compact
29: shapes = [DEFAULT_SHAPE.call(@x, @y, @line)] if shapes.empty?
30:
31: overlays = CRITERIA.select { |criteria|
32: criteria.last == OVERLAY
33: }.collect { |regexp, proc|
34: proc.call(@x, @y, @line) if description =~ regexp
35: }.compact
36:
37: return shapes + overlays
38: end