Class: Nyaplot::Layers::LayerBase
- Inherits:
-
Object
- Object
- Nyaplot::Layers::LayerBase
- Defined in:
- lib/nyaplot/layers/base.rb
Direct Known Subclasses
Accessor, Area, Axis, Background, Circle, Column, Context, D2c, Data, Grid, Histogram, Html_column, Html_row, Label, Legend, Line, Math_label, Position2d, Rect, Row, Scale, Scatter, Stage, Text, Vectors, Wheelzoom, Widget, Y_tooltip
Instance Attribute Summary collapse
-
#uuid ⇒ Object
readonly
Returns the value of attribute uuid.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(props = {}) ⇒ LayerBase
constructor
A new instance of LayerBase.
- #to_json(*args) ⇒ Object
- #to_node(children = []) ⇒ Object
Constructor Details
#initialize(props = {}) ⇒ LayerBase
Returns a new instance of LayerBase.
21 22 23 24 |
# File 'lib/nyaplot/layers/base.rb', line 21 def initialize(props={}) @uuid = SecureRandom.uuid @props = props end |
Instance Attribute Details
#uuid ⇒ Object (readonly)
Returns the value of attribute uuid.
19 20 21 |
# File 'lib/nyaplot/layers/base.rb', line 19 def uuid @uuid end |
Class Method Details
.define_args(*args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/nyaplot/layers/base.rb', line 5 def define_args(*args) args.each do |s| define_method(s) do |val=nil| unless val.nil? @props[s] = val self else @props[s] end end end end |
Instance Method Details
#to_json(*args) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/nyaplot/layers/base.rb', line 33 def to_json(*args) is_sync = Proc.new do |l| l.is_a?(LayerBase) || ((l.is_a?(Array) && l.all? {|cl| cl.is_a?(LayerBase)})) end args = @props.reduce({}) do |memo, pair| memo[pair[0]] = pair[1] unless is_sync.call(pair[1]) memo end sync_args = @props.reduce({}) do |memo, pair| if is_sync.call(pair[1]) memo[pair[0]] = (pair[1].is_a? LayerBase) ? pair[1].uuid : pair[1].map{|l| l.uuid} end memo end { type: self.class.name.downcase.split("::").last, uuid: @uuid, args: args, sync_args: sync_args }.to_json end |
#to_node(children = []) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/nyaplot/layers/base.rb', line 26 def to_node(children=[]) { uuid: @uuid, children: children } end |