class Dogviz::System
Attributes
children[R]
graph[R]
name[R]
render_hints[R]
render_options[R]
title[R]
Public Class Methods
new(name, hints = {splines: 'line'})
click to toggle source
# File lib/dogviz/system.rb, line 15 def initialize(name, hints = {splines: 'line'}) @children = [] @by_name = Registry.new name @non_render_hints = remove_dogviz_hints!(hints) @render_hints = hints @title = create_title(name) @rendered = false @warnings = Set.new @messages = Set.new @suppress_warnings = false @suppress_messages = false on_exit { output_messages output_warnings } end
Public Instance Methods
auto_nominate?()
click to toggle source
# File lib/dogviz/system.rb, line 87 def auto_nominate? @non_render_hints[:auto_nominate] end
colorize_edges?()
click to toggle source
# File lib/dogviz/system.rb, line 83 def colorize_edges? @non_render_hints[:colorize_edges] end
create_renderer(type)
click to toggle source
# File lib/dogviz/system.rb, line 60 def create_renderer(type) if type == :graphviz GraphvizRenderer.new @title, render_hints elsif type == :sigma SigmaRenderer.new @title else raise "dunno bout that '#{type}', only know :graphviz or :sigma" end end
flow(name)
click to toggle source
# File lib/dogviz/system.rb, line 42 def flow(name) Flow.new self, name end
messages()
click to toggle source
# File lib/dogviz/system.rb, line 99 def messages @messages.to_a end
output(*args)
click to toggle source
# File lib/dogviz/system.rb, line 35 def output(*args) render out = graph.output(*args) @messages << "Created output: #{args.join ' '}" unless suppress_messages? out end
register(name, thing)
click to toggle source
# File lib/dogviz/system.rb, line 79 def register(name, thing) @by_name.register name, thing end
render(type=:graphviz)
click to toggle source
# File lib/dogviz/system.rb, line 46 def render(type=:graphviz) return @graph if @rendered renderer = create_renderer(type) children.each { |c| c.render renderer } children.each { |c| c.render_edges renderer } @rendered = true @graph = renderer.graph end
rollup?()
click to toggle source
# File lib/dogviz/system.rb, line 71 def rollup? false end
skip?()
click to toggle source
# File lib/dogviz/system.rb, line 75 def skip? false end
suppress_messages!()
click to toggle source
# File lib/dogviz/system.rb, line 108 def suppress_messages! @suppress_messages = true self end
suppress_warnings!()
click to toggle source
# File lib/dogviz/system.rb, line 103 def suppress_warnings! @suppress_warnings = true self end
warn_on_exit(warning)
click to toggle source
# File lib/dogviz/system.rb, line 91 def warn_on_exit(warning) @warnings << warning end
warnings()
click to toggle source
# File lib/dogviz/system.rb, line 95 def warnings @warnings.to_a end
Private Instance Methods
create_title(name)
click to toggle source
# File lib/dogviz/system.rb, line 151 def create_title(name) now = DateTime.now "#{now.strftime '%H:%M'} #{name} #{now.strftime '%F'}" end
on_exit(&block)
click to toggle source
# File lib/dogviz/system.rb, line 115 def on_exit(&block) Kernel.at_exit(&block) end
output_messages()
click to toggle source
# File lib/dogviz/system.rb, line 119 def output_messages unless suppress_messages? messages.each {|message| STDERR.puts message } end end
output_warnings()
click to toggle source
# File lib/dogviz/system.rb, line 127 def output_warnings unless suppress_warnings? warnings.each {|warning| STDERR.puts warning } end end
remove_dogviz_hints!(hints)
click to toggle source
# File lib/dogviz/system.rb, line 143 def remove_dogviz_hints!(hints) dogviz_only_hints = {} %i(colorize_edges auto_nominate).each { |k| dogviz_only_hints[k] = hints.delete k } dogviz_only_hints end
suppress_messages?()
click to toggle source
# File lib/dogviz/system.rb, line 139 def suppress_messages? @suppress_messages end
suppress_warnings?()
click to toggle source
# File lib/dogviz/system.rb, line 135 def suppress_warnings? @suppress_warnings end