module Dogviz::Common

Public Instance Methods

ancestors() click to toggle source
# File lib/dogviz/common.rb, line 14
def ancestors
  ancestors = [parent]
  loop do
    break unless ancestors.last.respond_to?(:parent)
    ancestors << ancestors.last.parent
  end
  ancestors
end
create_id(name, parent) click to toggle source
# File lib/dogviz/common.rb, line 3
def create_id(name, parent)
  parts = []
  parts << parent.id if parent.respond_to? :id
  parts += name.split(/\s/)
  parts.join '_'
end
in_rollup?() click to toggle source
# File lib/dogviz/common.rb, line 76
def in_rollup?
  rollup? || under_rollup?
end
in_skip?() click to toggle source
# File lib/dogviz/common.rb, line 64
def in_skip?
  skip? || under_skip?
end
info(fields) click to toggle source
# File lib/dogviz/common.rb, line 23
def info(fields)
  @info.merge! fields
  setup_render_attributes(label: label_with_info)
  self
end
inherited_render_options() click to toggle source
# File lib/dogviz/common.rb, line 84
def inherited_render_options
  inherited = {}
  inherited[:fontname] = parent.render_options[:fontname] if parent.render_options.include?(:fontname)
  inherited
end
label_with_info() click to toggle source
# File lib/dogviz/common.rb, line 33
def label_with_info
  lines = [name]
  @info.each { |k, v|
    lines << "#{k}: #{v}"
  }
  lines.join "\n"
end
on_top_rollup?() click to toggle source
# File lib/dogviz/common.rb, line 80
def on_top_rollup?
  rollup? && !under_rollup?
end
rollup!() click to toggle source
# File lib/dogviz/common.rb, line 50
def rollup!
  @rollup = true
  self
end
rollup?() click to toggle source
# File lib/dogviz/common.rb, line 46
def rollup?
  @rollup
end
root() click to toggle source
# File lib/dogviz/common.rb, line 10
def root
  ancestors.last
end
setup_render_attributes(attributes) click to toggle source
# File lib/dogviz/common.rb, line 41
def setup_render_attributes(attributes)
  @attributes ||= {}
  @attributes.merge!(attributes)
end
skip!() click to toggle source
# File lib/dogviz/common.rb, line 55
def skip!
  @skip = true
  self
end
skip?() click to toggle source
# File lib/dogviz/common.rb, line 60
def skip?
  @skip
end
under_rollup?() click to toggle source
# File lib/dogviz/common.rb, line 72
def under_rollup?
  ancestors.any?(&:rollup?)
end
under_skip?() click to toggle source
# File lib/dogviz/common.rb, line 68
def under_skip?
  ancestors.any?(&:skip?)
end