Class: Dige::GraphvizDiagram::UMLClassDiagram
- Inherits:
-
Dige::GraphvizDiagram
- Object
- Dige::GraphvizDiagram
- Dige::GraphvizDiagram::UMLClassDiagram
- Defined in:
- lib/dige/graphviz_diagram/uml_class_diagram.rb
Constant Summary
Constants inherited from Dige::GraphvizDiagram
DEFAULT_NODE_HEIGHT, DEFAULT_NODE_WIDTH
Instance Attribute Summary
Attributes inherited from Dige::GraphvizDiagram
#associations, #klasses, #parent_child_relations
Instance Method Summary collapse
Methods inherited from Dige::GraphvizDiagram
#debug_inspect, #edge, #generate_diagram, #graph_settings, #header, #node, #node_settings, #quote, #random_color, #settings
Methods included from ClassBase
Instance Method Details
#edge_settings ⇒ Object
2 3 4 5 6 7 |
# File 'lib/dige/graphviz_diagram/uml_class_diagram.rb', line 2 def edge_settings super.merge( { :arrowhead => :none }) end |
#generate(file = ENV['FILE'], type = 'png') ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/dige/graphviz_diagram/uml_class_diagram.rb', line 9 def generate(file = ENV['FILE'], type = 'png') generate_diagram(file + "_uml_class_diagram", type) do assocs = associations.all.collect do |assoc| { :from => assoc.from_class_name, :to => assoc.to_class_name, :from_arity => assoc.from_arity, :to_arity => assoc.to_arity } end pcrs = parent_child_relations.all.collect do |pcr| { :from => pcr.child_class_name, :to => pcr.parent_class_name} end klasses.all.collect { |klass| node(klass.class_name, :associations_count => klass.associations_count) }.uniq.sort + pcrs.collect { |pcr| edge(pcr[:from], pcr[:to], true, {:color => random_color, :arrowhead => :empty}) }.uniq.sort + assocs.collect { |ass| edge(ass[:from], ass[:to], true, { :color => random_color, :headlabel => ass[:to_arity], :taillabel => ass[:from_arity]}) }.uniq.sort end end |