class Dogviz::Container

Attributes

children[R]
id[R]
name[R]
node[R]
parent[R]
render_options[R]
render_type[R]

Public Class Methods

new(parent, name, options = {}) click to toggle source
# File lib/dogviz/container.rb, line 14
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

Public Instance Methods

auto_nominate?() click to toggle source
# File lib/dogviz/container.rb, line 56
def auto_nominate?
  root.auto_nominate?
end
register(name, thing) click to toggle source
# File lib/dogviz/container.rb, line 33
def register(name, thing)
  @by_name.register name, thing
  parent.register name, thing
end
render(renderer) click to toggle source
# File lib/dogviz/container.rb, line 38
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
render_edges(renderer) click to toggle source
# File lib/dogviz/container.rb, line 50
def render_edges(renderer)
  children.each { |c|
    c.render_edges renderer
  }
end

Private Instance Methods

default_bounded_option(options) click to toggle source
# File lib/dogviz/container.rb, line 78
def default_bounded_option(options)
  bounded = true
  if options.has_key? :bounded
    bounded = options[:bounded]
  end
  options[:bounded] = bounded
end
do_render_node(renderer) click to toggle source
# File lib/dogviz/container.rb, line 67
def do_render_node(renderer)
  @render_type = :node
  renderer.render_node(parent, id, render_options.merge(@attributes))
end
do_render_subgraph(renderer) click to toggle source
# File lib/dogviz/container.rb, line 62
def do_render_subgraph(renderer)
  @render_type = :subgraph
  @subgraph = renderer.render_subgraph(parent, id, render_options.merge(@attributes))
end
init_rollup(options) click to toggle source
# File lib/dogviz/container.rb, line 72
def init_rollup(options)
  @rollup = false
  rollup! if options[:rollup]
  options.delete(:rollup)
end