Class: Bundler::Graph::GraphVizClient
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/bundler/graph.rb |
Class Method Summary
- .new(graph_instance) ⇒ GraphVizClient constructor
Instance Method Summary
Constructor Details
.new(graph_instance) ⇒ GraphVizClient
# File 'lib/bundler/graph.rb', line 95
def initialize(graph_instance) @graph_name = graph_instance.class::GRAPH_NAME @groups = graph_instance.groups @relations = graph_instance.relations @node_options = graph_instance. @edge_options = graph_instance. @output_file = graph_instance.output_file @output_format = graph_instance.output_format end
Instance Method Details
#g
[ GitHub ]# File 'lib/bundler/graph.rb', line 105
def g @g ||= ::GraphViz.digraph(@graph_name, concentrate: true, normalize: true, nodesep: 0.55) do |g| g.edge[:weight] = 2 g.edge[:fontname] = g.node[:fontname] = "Arial, Helvetica, SansSerif" g.edge[:fontsize] = 12 end end
#run
[ GitHub ]# File 'lib/bundler/graph.rb', line 113
def run @groups.each do |group| g.add_nodes( group, { style: "filled", fillcolor: "#B9B9D5", shape: "box3d", fontsize: 16, }.merge(@node_options[group]) ) end @relations.each do |parent, children| children.each do |child| if @groups.include?(parent) g.add_nodes(child, { style: "filled", fillcolor: "#B9B9D5" }.merge(@node_options[child])) g.add_edges(parent, child, { constraint: false }.merge(@edge_options["#{parent}_#{child}"])) else g.add_nodes(child, @node_options[child]) g.add_edges(parent, child, @edge_options["#{parent}_#{child}"]) end end end if @output_format.to_s == "debug" $stdout.puts g.output none: String Bundler.ui.info "debugging bundle viz..." else begin g.output @output_format.to_sym => "#{@output_file}.#{@output_format}" Bundler.ui.info "#{@output_file}.#{@output_format}" rescue ArgumentError => e warn "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb" raise e end end end