Sha256: b05158c5131a0e03b583da1d178e3bfdeb2f2d3af0fa7d468585fbf3f1e20b08
Contents?: true
Size: 1.81 KB
Versions: 3
Compression:
Stored size: 1.81 KB
Contents
require_relative 'common' require_relative 'nominator' require_relative 'parent' module Dogviz class Container include Common include Nominator include Parent attr_reader :parent attr_reader :name, :id, :node, :render_type, :render_options, :children def initialize(parent, name, options = {}) @children = [] @by_name = Registry.new name @parent = parent @name = name @id = create_id(name, parent) @skip = false @info = {} init_rollup options setup_render_attributes label: name default_bounded_option(options) @render_options = options.merge(inherited_render_options) parent.register name, self end def register(name, thing) @by_name.register name, thing parent.register name, thing end def render(renderer) if on_top_rollup? do_render_node renderer elsif !under_rollup? do_render_subgraph renderer end children.each { |c| c.render renderer } end def render_edges(renderer) children.each { |c| c.render_edges renderer } end def auto_nominate? root.auto_nominate? end private def do_render_subgraph(renderer) @render_type = :subgraph @subgraph = renderer.render_subgraph(parent, id, render_options.merge(@attributes)) end def do_render_node(renderer) @render_type = :node renderer.render_node(parent, id, render_options.merge(@attributes)) end def init_rollup(options) @rollup = false rollup! if options[:rollup] options.delete(:rollup) end def default_bounded_option(options) bounded = true if options.has_key? :bounded bounded = options[:bounded] end options[:bounded] = bounded end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dogviz-0.0.22 | lib/dogviz/container.rb |
dogviz-0.0.21 | lib/dogviz/container.rb |
dogviz-0.0.20 | lib/dogviz/container.rb |