ruby-graphviz_c 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. checksums.yaml +7 -0
  2. data/.gemrc +0 -0
  3. data/.gitignore +9 -0
  4. data/.travis.yml +7 -0
  5. data/AUTHORS.rdoc +33 -0
  6. data/CHANGELOG.rdoc +287 -0
  7. data/COPYING.rdoc +133 -0
  8. data/Gemfile +4 -0
  9. data/README.rdoc +206 -0
  10. data/Rakefile +71 -0
  11. data/bin/dot2ruby +91 -0
  12. data/bin/gem2gv +165 -0
  13. data/bin/git2gv +167 -0
  14. data/bin/ruby2gv +234 -0
  15. data/bin/xml2gv +96 -0
  16. data/examples/dot/JSP.dot +52 -0
  17. data/examples/dot/balanced.dot +36 -0
  18. data/examples/dot/cluster.dot +30 -0
  19. data/examples/dot/dotgraph.dot +28 -0
  20. data/examples/dot/fsm.dot +20 -0
  21. data/examples/dot/genetic.dot +118 -0
  22. data/examples/dot/hello.dot +1 -0
  23. data/examples/dot/hello_test.rb +33 -0
  24. data/examples/dot/lion_share.dot +103 -0
  25. data/examples/dot/prof.dot +150 -0
  26. data/examples/dot/psg.dot +28 -0
  27. data/examples/dot/rank.dot +6 -0
  28. data/examples/dot/sdh.dot +284 -0
  29. data/examples/dot/siblings.dot +492 -0
  30. data/examples/dot/so-sample001.gv +30 -0
  31. data/examples/dot/so-sample002.gv +33 -0
  32. data/examples/dot/so-sample003.gv +45 -0
  33. data/examples/dot/test.dot +17 -0
  34. data/examples/dot/test_parse.rb +13 -0
  35. data/examples/dot/this_crach_with_dot_2.20.dot +24 -0
  36. data/examples/dot/unix.dot +104 -0
  37. data/examples/graphml/attributes.ext.graphml +12 -0
  38. data/examples/graphml/attributes.graphml +40 -0
  39. data/examples/graphml/cluster.graphml +75 -0
  40. data/examples/graphml/failed_graph.graphml +461 -0
  41. data/examples/graphml/hyper.graphml +29 -0
  42. data/examples/graphml/nested.graphml +54 -0
  43. data/examples/graphml/port.graphml +32 -0
  44. data/examples/graphml/simple.graphml +30 -0
  45. data/examples/hello.png +0 -0
  46. data/examples/rgv/rgv.ps +125 -0
  47. data/examples/rgv/test_rgv.rb +12 -0
  48. data/examples/sample01.rb +32 -0
  49. data/examples/sample02.rb +42 -0
  50. data/examples/sample03.rb +31 -0
  51. data/examples/sample04.rb +22 -0
  52. data/examples/sample05.rb +32 -0
  53. data/examples/sample06.rb +46 -0
  54. data/examples/sample07.rb +23 -0
  55. data/examples/sample08.rb +34 -0
  56. data/examples/sample09.rb +50 -0
  57. data/examples/sample10.rb +50 -0
  58. data/examples/sample11.rb +42 -0
  59. data/examples/sample12.rb +55 -0
  60. data/examples/sample13.rb +48 -0
  61. data/examples/sample14.rb +44 -0
  62. data/examples/sample15.rb +25 -0
  63. data/examples/sample16.rb +8 -0
  64. data/examples/sample17.rb +92 -0
  65. data/examples/sample18.rb +24 -0
  66. data/examples/sample19.rb +59 -0
  67. data/examples/sample20.rb +47 -0
  68. data/examples/sample21.rb +12 -0
  69. data/examples/sample22.rb +10 -0
  70. data/examples/sample23.rb +11 -0
  71. data/examples/sample24.rb +11 -0
  72. data/examples/sample25.rb +11 -0
  73. data/examples/sample26.rb +8 -0
  74. data/examples/sample27.rb +8 -0
  75. data/examples/sample28.rb +12 -0
  76. data/examples/sample29.rb +8 -0
  77. data/examples/sample30.rb +12 -0
  78. data/examples/sample31.rb +10 -0
  79. data/examples/sample32.rb +14 -0
  80. data/examples/sample33.rb +43 -0
  81. data/examples/sample34.rb +29 -0
  82. data/examples/sample35.rb +43 -0
  83. data/examples/sample36.rb +35 -0
  84. data/examples/sample37.rb +87 -0
  85. data/examples/sample38.rb +12 -0
  86. data/examples/sample39.rb +11 -0
  87. data/examples/sample40.rb +17 -0
  88. data/examples/sample41.rb +8 -0
  89. data/examples/sample42.rb +35 -0
  90. data/examples/sample43.rb +26 -0
  91. data/examples/sample44.rb +97 -0
  92. data/examples/sample45.rb +24 -0
  93. data/examples/sample46.rb +43 -0
  94. data/examples/sample47.rb +7 -0
  95. data/examples/sample48.rb +62 -0
  96. data/examples/sample49.rb +10 -0
  97. data/examples/sample50.rb +215 -0
  98. data/examples/sample51.rb +37 -0
  99. data/examples/sample52.rb +62 -0
  100. data/examples/sample53.rb +26 -0
  101. data/examples/sample54.rb +26 -0
  102. data/examples/sample55.rb +9 -0
  103. data/examples/sample56.rb +10 -0
  104. data/examples/sample57.rb +8 -0
  105. data/examples/sample58.rb +33 -0
  106. data/examples/sample59.rb +14 -0
  107. data/examples/sample60.rb +12 -0
  108. data/examples/sample61.rb +12 -0
  109. data/examples/sample62.rb +24 -0
  110. data/examples/sample63.rb +32 -0
  111. data/examples/sample64.rb +31 -0
  112. data/examples/sample65.rb +9 -0
  113. data/examples/sample66.rb +4 -0
  114. data/examples/sample67.rb +10 -0
  115. data/examples/sample68.rb +27 -0
  116. data/examples/sample69.rb +23 -0
  117. data/examples/sample70.rb +9 -0
  118. data/examples/sample99.rb +70 -0
  119. data/examples/sdlshapes/README +2 -0
  120. data/examples/sdlshapes/sdl.ps +655 -0
  121. data/examples/sdlshapes/sdlshapes.dot +78 -0
  122. data/examples/test.xml +26 -0
  123. data/examples/theory/pert.rb +47 -0
  124. data/examples/theory/tests.rb +87 -0
  125. data/lib/ext/gvpr/dot2ruby.g +185 -0
  126. data/lib/graphviz/attrs.rb +73 -0
  127. data/lib/graphviz/constants.rb +294 -0
  128. data/lib/graphviz/core_ext.rb +64 -0
  129. data/lib/graphviz/dot2ruby.rb +59 -0
  130. data/lib/graphviz/dot_script.rb +109 -0
  131. data/lib/graphviz/dsl.rb +67 -0
  132. data/lib/graphviz/edge.rb +197 -0
  133. data/lib/graphviz/elements.rb +39 -0
  134. data/lib/graphviz/ext.rb +17 -0
  135. data/lib/graphviz/family_tree/couple.rb +63 -0
  136. data/lib/graphviz/family_tree/generation.rb +39 -0
  137. data/lib/graphviz/family_tree/person.rb +120 -0
  138. data/lib/graphviz/family_tree/sibling.rb +13 -0
  139. data/lib/graphviz/family_tree.rb +118 -0
  140. data/lib/graphviz/graphml.rb +268 -0
  141. data/lib/graphviz/math/matrix.rb +221 -0
  142. data/lib/graphviz/node.rb +160 -0
  143. data/lib/graphviz/nothugly/nothugly.xsl +321 -0
  144. data/lib/graphviz/nothugly.rb +63 -0
  145. data/lib/graphviz/theory.rb +321 -0
  146. data/lib/graphviz/types/arrow_type.rb +32 -0
  147. data/lib/graphviz/types/color.rb +58 -0
  148. data/lib/graphviz/types/color_list.rb +24 -0
  149. data/lib/graphviz/types/esc_string.rb +20 -0
  150. data/lib/graphviz/types/gv_bool.rb +49 -0
  151. data/lib/graphviz/types/gv_double.rb +32 -0
  152. data/lib/graphviz/types/html_string.rb +18 -0
  153. data/lib/graphviz/types/lbl_string.rb +22 -0
  154. data/lib/graphviz/types/rect.rb +35 -0
  155. data/lib/graphviz/types/spline_type.rb +77 -0
  156. data/lib/graphviz/types.rb +22 -0
  157. data/lib/graphviz/utils/colors.rb +1018 -0
  158. data/lib/graphviz/utils.rb +70 -0
  159. data/lib/graphviz/xml.rb +119 -0
  160. data/lib/graphviz.rb +967 -0
  161. data/lib/ruby-graphviz.rb +1 -0
  162. data/man/dot2ruby.1 +66 -0
  163. data/man/dot2ruby.1.ronn +55 -0
  164. data/man/gem2gv.1 +60 -0
  165. data/man/gem2gv.1.ronn +47 -0
  166. data/man/git2gv.1 +48 -0
  167. data/man/git2gv.1.ronn +40 -0
  168. data/man/ruby2gv.1 +60 -0
  169. data/man/ruby2gv.1.ronn +47 -0
  170. data/man/xml2gv.1 +48 -0
  171. data/man/xml2gv.1.ronn +39 -0
  172. data/ruby-graphviz.gemspec +47 -0
  173. data/setup.rb +1585 -0
  174. data/test/helper.rb +13 -0
  175. data/test/support.rb +95 -0
  176. data/test/test_dot_script.rb +47 -0
  177. data/test/test_examples.rb +151 -0
  178. data/test/test_graph.rb +115 -0
  179. data/test/test_search.rb +29 -0
  180. data/test/test_subgraph.rb +27 -0
  181. data/test/test_theory.rb +98 -0
  182. data/test/test_types.rb +65 -0
  183. data/test/test_utils_colors.rb +52 -0
  184. metadata +301 -0
@@ -0,0 +1,12 @@
1
+ # coding: utf-8
2
+ $:.unshift( "../lib" )
3
+ require "graphviz"
4
+
5
+ g = GraphViz::new( :G ) { |_g|
6
+ _g.a[:label => "ε"]
7
+ _g.add_nodes( "b", :label => "ε" )
8
+ _g.c[:label => 'ε']
9
+ _g.add_nodes( "d", :label => 'ε' )
10
+ }
11
+
12
+ puts g.output( :none => String, :png => "#{$0}.png", :path => "/usr/local/bin" )
@@ -0,0 +1,11 @@
1
+ $:.unshift( "../lib" );
2
+ require "graphviz"
3
+
4
+ g = GraphViz::new( "G", :type => "graph" )
5
+ n1 = g.add_nodes( "A" )
6
+ n2 = g.add_nodes( "B" )
7
+ n3 = g.add_nodes( "C" )
8
+ e1 = g.add_edges( n1, n2 )
9
+ e1[:dir] = 'forward'
10
+ e2 = g.add_edges( n1, n3 )
11
+ g.output( :png => "#{$0}.png" )
@@ -0,0 +1,17 @@
1
+ $:.unshift( "../lib" );
2
+ require "graphviz"
3
+
4
+ graph = GraphViz.new( :G, :type => :digraph )
5
+
6
+ node1 = graph.add_nodes("hello:world",
7
+ "shape" => "record",
8
+ "label" => "<left>|<f1> 1|<right>" )
9
+
10
+ node2 = graph.add_nodes("2",
11
+ "shape" => "record",
12
+ "label" => "<left>|<f1> 2|<right>" )
13
+
14
+ graph.add_edges( {node1 => :left}, node2 )
15
+ graph.add_edges( {node2 => :right}, node1 )
16
+
17
+ puts graph.output( :none => String, :png => "#{$0}.png" )
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" )
4
+ require "graphviz"
5
+
6
+ GraphViz::new( "G" ) { |g|
7
+ g.hello(:style => :filled, :fillcolor => :lightblue) << g.world(:style => :filled, :fillcolor => :lightgrey)
8
+ }.output( :svg => "#{$0}.svg", :nothugly => true )
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ g = nil
7
+ if ARGV[0]
8
+ g = GraphViz::new( "G", "path" => ARGV[0], :use => "circo" )
9
+ else
10
+ g = GraphViz::new( "G" )
11
+ end
12
+
13
+ c0 = g.add_graph( "cluster0" )
14
+ c0["label"] = "Environnement de Brad !"
15
+ c0["style"] = "filled"
16
+ c0["color"] = "blue"
17
+
18
+ ja = c0.add_nodes( "Jennifer_Aniston", :style => "filled", :color => "red" )
19
+ bp = c0.add_nodes( "Brad_Pitt", :style => "filled", :color => "white" )
20
+ aj = c0.add_nodes( "Angelina_Jolie", :style => "filled", :color => "green" )
21
+
22
+ c0.add_edges( ja, bp ) # On ete mariés
23
+ c0.add_edges( bp, aj ) # Sont ensemble
24
+
25
+ jv = g.add_nodes( "John_Voight", :label => "John Voight", :shape => "rectangle" )
26
+ md = g.add_nodes( "Madonna" )
27
+ gr = g.add_nodes( "Guy_Ritchie" )
28
+
29
+ g.add_edges( aj, jv ) # est la fille de
30
+ g.add_edges( jv, aj ) # est le pere de
31
+ g.add_edges( bp, jv, :color => "red", :label => "Est le beau fils de" ) # Beau fils
32
+ g.add_edges( bp, gr )
33
+ g.add_edges( gr, md )
34
+
35
+ g.output( :png => "#{$0}.png" )
@@ -0,0 +1,26 @@
1
+ $:.unshift( "../lib" );
2
+ require "graphviz"
3
+
4
+ g = GraphViz::new( "structs" )
5
+
6
+ g.node["shape"] = "plaintext"
7
+
8
+ g.add_nodes( "HTML" )
9
+
10
+ g.add_nodes( "struct1", "label" => '<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
11
+ <TR>
12
+ <TD>left</TD>
13
+ <TD PORT="f1">mid dle</TD>
14
+ <TD PORT="f2">right</TD>
15
+ </TR>
16
+ </TABLE>>' )
17
+
18
+ g.add_nodes( "struct2", "label" => '<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD PORT="f0">one</TD><TD>two</TD></TR> </TABLE>>' )
19
+ g.add_nodes( "struct3", "label" => '<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> <TR> <TD ROWSPAN="3">hello<BR/>world</TD> <TD COLSPAN="3">b</TD> <TD ROWSPAN="3">g</TD> <TD ROWSPAN="3">h</TD> </TR> <TR> <TD>c</TD><TD PORT="here">d</TD><TD>e</TD> </TR> <TR> <TD COLSPAN="3">f</TD> </TR> </TABLE>>' )
20
+
21
+ g.add_edges( {"struct1" => :f1}, {"struct2" => :f0} )
22
+ g.add_edges( {"struct1" => :f2}, {"struct3" => :here} )
23
+
24
+ g.add_edges( "HTML", "struct1" )
25
+
26
+ g.output( :path => ARGV[0], :png => "#{$0}.png" )
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ g = nil
7
+ if ARGV[0]
8
+ g = GraphViz::new( "G", "path" => ARGV[0] )
9
+ else
10
+ g = GraphViz::new( "G" )
11
+ end
12
+
13
+ g["rankdir"] = "LR"
14
+ g.node["shape"] = "ellipse"
15
+ g.edge["arrowhead"] = "normal"
16
+
17
+ [
18
+ "box",
19
+ "boxbox",
20
+ "lbox",
21
+ "lboxlbox",
22
+ "rbox",
23
+ "rboxrbox",
24
+ "olbox",
25
+ "olboxolbox",
26
+ "orbox",
27
+ "orboxorbox",
28
+ "obox",
29
+ "oboxobox",
30
+ "crow",
31
+ "crowcrow",
32
+ "lcrow",
33
+ "lcrowlcrow",
34
+ "rcrow",
35
+ "rcrowrcrow",
36
+ "diamond",
37
+ "diamonddiamond",
38
+ "ldiamond",
39
+ "ldiamondldiamond",
40
+ "rdiamond",
41
+ "rdiamondrdiamond",
42
+ "oldiamond",
43
+ "oldiamondoldiamond",
44
+ "ordiamond",
45
+ "ordiamondordiamond",
46
+ "odiamond",
47
+ "odiamondodiamond",
48
+ "dot",
49
+ "dotdot",
50
+ "odot",
51
+ "odotodot",
52
+ "inv",
53
+ "invinv",
54
+ "linv",
55
+ "linvlinv",
56
+ "rinv",
57
+ "rinvrinv",
58
+ "olinv",
59
+ "olinvolinv",
60
+ "orinv",
61
+ "orinvorinv",
62
+ "oinv",
63
+ "oinvoinv",
64
+ "none",
65
+ "nonenone",
66
+ "normal",
67
+ "normalnormal",
68
+ "lnormal",
69
+ "lnormallnormal",
70
+ "rnormal",
71
+ "rnormalrnormal",
72
+ "olnormal",
73
+ "olnormalolnormal",
74
+ "ornormal",
75
+ "ornormalornormal",
76
+ "onormal",
77
+ "onormalonormal",
78
+ "tee",
79
+ "teetee",
80
+ "ltee",
81
+ "lteeltee",
82
+ "rtee",
83
+ "rteertee",
84
+ "vee",
85
+ "veevee",
86
+ "lvee",
87
+ "lveelvee",
88
+ "rvee",
89
+ "rveervee"
90
+ ].each { |s|
91
+ p = "p_" << s
92
+ g.add_nodes( p, "shape" => "point" )
93
+ g.add_nodes( s )
94
+ g.add_edges( p, s, "arrowhead" => s )
95
+ }
96
+
97
+ g.output( :png => "#{$0}.png" )
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ g = nil
7
+ if ARGV[0]
8
+ g = GraphViz::new( "G", "path" => ARGV[0] )
9
+ else
10
+ g = GraphViz::new( "G" )
11
+ end
12
+
13
+ g.node["shape"] = "ellipse"
14
+
15
+ [ "box", "polygon", "ellipse", "circle", "point",
16
+ "egg", "triangle", "plaintext", "diamond", "trapezium",
17
+ "parallelogram", "house", "pentagon", "hexagon", "septagon", "octagon", "doublecircle",
18
+ "doubleoctagon", "tripleoctagon", "invtriangle", "invtrapezium", "invhouse",
19
+ "Mdiamond", "Msquare", "Mcircle", "rect", "rectangle", "none", "note", "tab", "folder",
20
+ "box3d", "component" ].each { |s|
21
+ g.add_nodes( s, "shape" => s )
22
+ }
23
+
24
+ g.output( :png => "#{$0}.png")
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ g = nil
7
+ if ARGV[0]
8
+ g = GraphViz::new( "G", "path" => ARGV[0] )
9
+ else
10
+ g = GraphViz::new( "G" )
11
+ end
12
+
13
+ g.node["color"] = "black"
14
+
15
+ g.edge["color"] = "black"
16
+ g.edge["weight"] = "1"
17
+ g.edge["style"] = "filled"
18
+ g.edge["label"] = ""
19
+
20
+ g["size"] = "4,4"
21
+
22
+ g.node["shape"] = "box"
23
+ main = g.add_nodes( "main" )
24
+ g.node["shape"] = "ellipse"
25
+ parse = g.add_nodes( "parse" )
26
+ execute = g.add_nodes( "execute" )
27
+ init = g.add_nodes( "init" )
28
+ cleanup = g.add_nodes( "cleanup" )
29
+ make_string = g.add_nodes( "make_string", "label" => 'make a\nstring' )
30
+ printf = g.add_nodes( "printf" )
31
+ compare = g.add_nodes( "compare", "shape" => "box", "style" => "filled", "color" => ".7 .3 1.0" )
32
+
33
+ g.add_edges( main, parse, "weight" => "8" )
34
+ g.add_edges( parse, execute )
35
+ g.add_edges( main, init, "style" => "dotted" )
36
+ g.add_edges( main, cleanup )
37
+ g.add_edges( execute, make_string )
38
+ g.add_edges( execute, printf )
39
+ g.add_edges( init, make_string )
40
+ g.add_edges( main, printf, "color" => "red", "style" => "bold", "label" => "100 times" )
41
+ g.add_edges( execute, compare, "color" => "red" )
42
+
43
+ g.output( :png => "#{$0}.png" )
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" )
4
+ require 'graphviz/xml'
5
+
6
+ gvxml = GraphViz::XML::new( File.join( File.dirname(__FILE__), "test.xml" ), :text => true, :attrs => true )
7
+ gvxml.graph.output( :png => "#{$0}.png", :use => "dot" )
@@ -0,0 +1,62 @@
1
+ # http://www.graphviz.org/Gallery/directed/cluster.html
2
+ #
3
+ # digraph G {
4
+ #
5
+ # subgraph cluster_0 {
6
+ # style=filled;
7
+ # color=lightgrey;
8
+ # node [style=filled,color=white];
9
+ # a0 -> a1 -> a2 -> a3;
10
+ # label = "process #1";
11
+ # }
12
+ #
13
+ # subgraph cluster_1 {
14
+ # node [style=filled];
15
+ # b0 -> b1 -> b2 -> b3;
16
+ # label = "process #2";
17
+ # color=blue
18
+ # }
19
+ # start -> a0;
20
+ # start -> b0;
21
+ # a1 -> b3;
22
+ # b2 -> a3;
23
+ # a3 -> a0;
24
+ # a3 -> end;
25
+ # b3 -> end;
26
+ #
27
+ # start [shape=Mdiamond];
28
+ # end [shape=Msquare];
29
+ # }
30
+
31
+ $:.unshift( "../lib" );
32
+ require "graphviz"
33
+
34
+ GraphViz.new( :G, :type => :digraph ) { |g|
35
+ g.cluster_0 { |c|
36
+ c[:style] = :filled
37
+ c[:color] = :lightgrey
38
+ c.node[:style] = :filled
39
+ c.node[:color] = :white
40
+ c.a0 << c.a1 << c.a2 << c.a3
41
+ c[:label] = "process #1"
42
+ }
43
+
44
+ g.cluster_1 { |c|
45
+ c.node[:style] = :filled
46
+ c.b0 << c.b1 << c.b2 << c.b3
47
+ c[:label] = "process #1"
48
+ c[:color] = :blue
49
+ }
50
+
51
+ g.start << g.cluster_0.a0
52
+ g.start << g.cluster_1.b0
53
+ g.cluster_0.a1 << g.cluster_1.b3
54
+ g.cluster_1.b2 << g.cluster_0.a3
55
+ g.cluster_0.a3 << g.cluster_0.a0
56
+ g.cluster_0.a3 << g._end
57
+ g.cluster_1.b3 << g._end
58
+
59
+ g.start[:shape] = :Mdiamond
60
+ g._end[:label] = "end"
61
+ g._end[:shape] = :Mdiamond
62
+ }.output( :png => "#{$0}.png" )
@@ -0,0 +1,10 @@
1
+ # http://www.graphviz.org/Gallery/directed/hello.html
2
+ #
3
+ # digraph G {Hello->World}
4
+
5
+ $:.unshift( "../lib" );
6
+ require "graphviz"
7
+
8
+ GraphViz::new( :G, :type => :digraph ) { |g|
9
+ g.world( :label => "World" ) << g.hello( :label => "Hello" )
10
+ }.output( :png => "#{$0}.png" )
@@ -0,0 +1,215 @@
1
+ # http://www.graphviz.org/Gallery/directed/lion_share.html
2
+ #
3
+ # digraph Ped_Lion_Share {
4
+ # # page = "8.2677165,11.692913" ;
5
+ # ratio = "auto" ;
6
+ # mincross = 2.0 ;
7
+ # label = "Pedigree Lion_Share" ;
8
+ #
9
+ # "001" [shape=box , regular=1,style=filled,fillcolor=white ] ;
10
+ # "002" [shape=box , regular=1,style=filled,fillcolor=white ] ;
11
+ # "003" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
12
+ # "004" [shape=box , regular=1,style=filled,fillcolor=white ] ;
13
+ # "005" [shape=box , regular=1,style=filled,fillcolor=white ] ;
14
+ # "006" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
15
+ # "007" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
16
+ # "009" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
17
+ # "014" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
18
+ # "015" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
19
+ # "016" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
20
+ # "ZZ01" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
21
+ # "ZZ02" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
22
+ # "017" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
23
+ # "012" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
24
+ # "008" [shape=box , regular=1,style=filled,fillcolor=white ] ;
25
+ # "011" [shape=box , regular=1,style=filled,fillcolor=white ] ;
26
+ # "013" [shape=box , regular=1,style=filled,fillcolor=white ] ;
27
+ # "010" [shape=box , regular=1,style=filled,fillcolor=white ] ;
28
+ # "023" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
29
+ # "020" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
30
+ # "021" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
31
+ # "018" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
32
+ # "025" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
33
+ # "019" [shape=box , regular=1,style=filled,fillcolor=white ] ;
34
+ # "022" [shape=box , regular=1,style=filled,fillcolor=white ] ;
35
+ # "024" [shape=box , regular=1,style=filled,fillcolor=white ] ;
36
+ # "027" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
37
+ # "026" [shape=box , regular=1,style=filled,fillcolor=white ] ;
38
+ # "028" [shape=box , regular=1,style=filled,fillcolor=grey ] ;
39
+ # "marr0001" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
40
+ # "001" -> "marr0001" [dir=none,weight=1] ;
41
+ # "007" -> "marr0001" [dir=none,weight=1] ;
42
+ # "marr0001" -> "017" [dir=none, weight=2] ;
43
+ # "marr0002" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
44
+ # "001" -> "marr0002" [dir=none,weight=1] ;
45
+ # "ZZ02" -> "marr0002" [dir=none,weight=1] ;
46
+ # "marr0002" -> "012" [dir=none, weight=2] ;
47
+ # "marr0003" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
48
+ # "002" -> "marr0003" [dir=none,weight=1] ;
49
+ # "003" -> "marr0003" [dir=none,weight=1] ;
50
+ # "marr0003" -> "008" [dir=none, weight=2] ;
51
+ # "marr0004" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
52
+ # "002" -> "marr0004" [dir=none,weight=1] ;
53
+ # "006" -> "marr0004" [dir=none,weight=1] ;
54
+ # "marr0004" -> "011" [dir=none, weight=2] ;
55
+ # "marr0005" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
56
+ # "002" -> "marr0005" [dir=none,weight=1] ;
57
+ # "ZZ01" -> "marr0005" [dir=none,weight=1] ;
58
+ # "marr0005" -> "013" [dir=none, weight=2] ;
59
+ # "marr0006" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
60
+ # "004" -> "marr0006" [dir=none,weight=1] ;
61
+ # "009" -> "marr0006" [dir=none,weight=1] ;
62
+ # "marr0006" -> "010" [dir=none, weight=2] ;
63
+ # "marr0007" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
64
+ # "005" -> "marr0007" [dir=none,weight=1] ;
65
+ # "015" -> "marr0007" [dir=none,weight=1] ;
66
+ # "marr0007" -> "023" [dir=none, weight=2] ;
67
+ # "marr0008" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
68
+ # "005" -> "marr0008" [dir=none,weight=1] ;
69
+ # "016" -> "marr0008" [dir=none,weight=1] ;
70
+ # "marr0008" -> "020" [dir=none, weight=2] ;
71
+ # "marr0009" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
72
+ # "005" -> "marr0009" [dir=none,weight=1] ;
73
+ # "012" -> "marr0009" [dir=none,weight=1] ;
74
+ # "marr0009" -> "021" [dir=none, weight=2] ;
75
+ # "marr0010" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
76
+ # "008" -> "marr0010" [dir=none,weight=1] ;
77
+ # "017" -> "marr0010" [dir=none,weight=1] ;
78
+ # "marr0010" -> "018" [dir=none, weight=2] ;
79
+ # "marr0011" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
80
+ # "011" -> "marr0011" [dir=none,weight=1] ;
81
+ # "023" -> "marr0011" [dir=none,weight=1] ;
82
+ # "marr0011" -> "025" [dir=none, weight=2] ;
83
+ # "marr0012" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
84
+ # "013" -> "marr0012" [dir=none,weight=1] ;
85
+ # "014" -> "marr0012" [dir=none,weight=1] ;
86
+ # "marr0012" -> "019" [dir=none, weight=2] ;
87
+ # "marr0013" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
88
+ # "010" -> "marr0013" [dir=none,weight=1] ;
89
+ # "021" -> "marr0013" [dir=none,weight=1] ;
90
+ # "marr0013" -> "022" [dir=none, weight=2] ;
91
+ # "marr0014" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
92
+ # "019" -> "marr0014" [dir=none,weight=1] ;
93
+ # "020" -> "marr0014" [dir=none,weight=1] ;
94
+ # "marr0014" -> "024" [dir=none, weight=2] ;
95
+ # "marr0015" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
96
+ # "022" -> "marr0015" [dir=none,weight=1] ;
97
+ # "025" -> "marr0015" [dir=none,weight=1] ;
98
+ # "marr0015" -> "027" [dir=none, weight=2] ;
99
+ # "marr0016" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
100
+ # "024" -> "marr0016" [dir=none,weight=1] ;
101
+ # "018" -> "marr0016" [dir=none,weight=1] ;
102
+ # "marr0016" -> "026" [dir=none, weight=2] ;
103
+ # "marr0017" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
104
+ # "026" -> "marr0017" [dir=none,weight=1] ;
105
+ # "027" -> "marr0017" [dir=none,weight=1] ;
106
+ # "marr0017" -> "028" [dir=none, weight=2] ;
107
+ # }
108
+
109
+ $:.unshift( "../../lib" );
110
+ require "graphviz"
111
+
112
+ GraphViz::new( "Ped_Lion_Share", :type => :digraph ) { |g|
113
+ g[:ratio] = :auto
114
+ # g[:mincross] = 2.0
115
+ g[:label] = "Pedigree Lion_Share"
116
+
117
+ g._001.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "001" }
118
+ g._002.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "002" }
119
+ g._003.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "003" }
120
+ g._004.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "004" }
121
+ g._005.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "005" }
122
+ g._006.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "006" }
123
+ g._007.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "007" }
124
+ g._009.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "009" }
125
+ g._014.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "014" }
126
+ g._015.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "015" }
127
+ g._016.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "016" }
128
+ g.ZZ01.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white }
129
+ g.ZZ02.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white }
130
+ g._017.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "017" }
131
+ g._012.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "012" }
132
+ g._008.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "008" }
133
+ g._011.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "011" }
134
+ g._013.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "013" }
135
+ g._010.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "010" }
136
+ g._023.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "023" }
137
+ g._020.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "020" }
138
+ g._021.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "021" }
139
+ g._018.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "018" }
140
+ g._025.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "025" }
141
+ g._019.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "019" }
142
+ g._022.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "022" }
143
+ g._024.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "024" }
144
+ g._027.set { |n| n[:shape] = :circle; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "027" }
145
+ g._026.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :white; n[:label] = "026" }
146
+ g._028.set { |n| n[:shape] = :box; n[:regular] = 1; n[:style] = :filled; n[:fillcolor] = :grey; n[:label] = "028" }
147
+ g.marr0001.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
148
+ (g._001 << g.marr0001).set { |e| e[:dir] = :none; e[:weight] = 1 }
149
+ (g._007 << g.marr0001).set { |e| e[:dir] = :none; e[:weight] = 1 }
150
+ (g.marr0001 << g._017).set { |e| e[:dir] = :none; e[:weight] = 2 }
151
+ g.marr0002.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
152
+ (g._001 << g.marr0002).set { |e| e[:dir] = :none; e[:weight] = 1 }
153
+ (g.ZZ02 << g.marr0002).set { |e| e[:dir] = :none; e[:weight] = 1 }
154
+ (g.marr0002 << g._012).set { |e| e[:dir] = :none; e[:weight] = 2 }
155
+ g.marr0003.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
156
+ (g._002 << g.marr0003).set { |e| e[:dir] = :none; e[:weight] = 1 }
157
+ (g._003 << g.marr0003).set { |e| e[:dir] = :none; e[:weight] = 1 }
158
+ (g.marr0003 << g._008).set { |e| e[:dir] = :none; e[:weight] = 2 }
159
+ g.marr0004.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
160
+ (g._002 << g.marr0004).set { |e| e[:dir] = :none; e[:weight] = 1 }
161
+ (g._006 << g.marr0004).set { |e| e[:dir] = :none; e[:weight] = 1 }
162
+ (g.marr0004 << g._011).set { |e| e[:dir] = :none; e[:weight] = 2 }
163
+ g.marr0005.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
164
+ (g._002 << g.marr0005).set { |e| e[:dir] = :none; e[:weight] = 1 }
165
+ (g.ZZ01 << g.marr0005).set { |e| e[:dir] = :none; e[:weight] = 1 }
166
+ (g.marr0005 << g._013).set { |e| e[:dir] = :none; e[:weight] = 2 }
167
+ g.marr0006.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
168
+ (g._004 << g.marr0006).set { |e| e[:dir] = :none; e[:weight] = 1 }
169
+ (g._009 << g.marr0006).set { |e| e[:dir] = :none; e[:weight] = 1 }
170
+ (g.marr0006 << g._010).set { |e| e[:dir] = :none; e[:weight] = 2 }
171
+ g.marr0007.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
172
+ (g._005 << g.marr0007).set { |e| e[:dir] = :none; e[:weight] = 1 }
173
+ (g._015 << g.marr0007).set { |e| e[:dir] = :none; e[:weight] = 1 }
174
+ (g.marr0007 << g._023).set { |e| e[:dir] = :none; e[:weight] = 2 }
175
+ g.marr0008.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
176
+ (g._005 << g.marr0008).set { |e| e[:dir] = :none; e[:weight] = 1 }
177
+ (g._016 << g.marr0008).set { |e| e[:dir] = :none; e[:weight] = 1 }
178
+ (g.marr0008 << g._020).set { |e| e[:dir] = :none; e[:weight] = 2 }
179
+ g.marr0009.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
180
+ (g._005 << g.marr0009).set { |e| e[:dir] = :none; e[:weight] = 1 }
181
+ (g._012 << g.marr0009).set { |e| e[:dir] = :none; e[:weight] = 1 }
182
+ (g.marr0009 << g._021).set { |e| e[:dir] = :none; e[:weight] = 2 }
183
+ g.marr0010.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
184
+ (g._008 << g.marr0010).set { |e| e[:dir] = :none; e[:weight] = 1 }
185
+ (g._017 << g.marr0010).set { |e| e[:dir] = :none; e[:weight] = 1 }
186
+ (g.marr0010 << g._018).set { |e| e[:dir] = :none; e[:weight] = 2 }
187
+ g.marr0011.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
188
+ (g._011 << g.marr0011).set { |e| e[:dir] = :none; e[:weight] = 1 }
189
+ (g._023 << g.marr0011).set { |e| e[:dir] = :none; e[:weight] = 1 }
190
+ (g.marr0011 << g._025).set { |e| e[:dir] = :none; e[:weight] = 2 }
191
+ g.marr0012.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
192
+ (g._013 << g.marr0012).set { |e| e[:dir] = :none; e[:weight] = 1 }
193
+ (g._014 << g.marr0012).set { |e| e[:dir] = :none; e[:weight] = 1 }
194
+ (g.marr0012 << g._019).set { |e| e[:dir] = :none; e[:weight] = 2 }
195
+ g.marr0013.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
196
+ (g._010 << g.marr0013).set { |e| e[:dir] = :none; e[:weight] = 1 }
197
+ (g._021 << g.marr0013).set { |e| e[:dir] = :none; e[:weight] = 1 }
198
+ (g.marr0013 << g._022).set { |e| e[:dir] = :none; e[:weight] = 2 }
199
+ g.marr0014.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
200
+ (g._019 << g.marr0014).set { |e| e[:dir] = :none; e[:weight] = 1 }
201
+ (g._020 << g.marr0014).set { |e| e[:dir] = :none; e[:weight] = 1 }
202
+ (g.marr0014 << g._024).set { |e| e[:dir] = :none; e[:weight] = 2 }
203
+ g.marr0015.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
204
+ (g._022 << g.marr0015).set { |e| e[:dir] = :none; e[:weight] = 1 }
205
+ (g._025 << g.marr0015).set { |e| e[:dir] = :none; e[:weight] = 1 }
206
+ (g.marr0015 << g._027).set { |e| e[:dir] = :none; e[:weight] = 2 }
207
+ g.marr0016.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
208
+ (g._024 << g.marr0016).set { |e| e[:dir] = :none; e[:weight] = 1 }
209
+ (g._018 << g.marr0016).set { |e| e[:dir] = :none; e[:weight] = 1 }
210
+ (g.marr0016 << g._026).set { |e| e[:dir] = :none; e[:weight] = 2 }
211
+ g.marr0017.set { |n| n[:shape] = :diamond; n[:style] = :filled; n[:label] = ""; n[:height] = 0.1; n[:width] = 0.1 }
212
+ (g._026 << g.marr0017).set { |e| e[:dir] = :none; e[:weight] = 1 }
213
+ (g._027 << g.marr0017).set { |e| e[:dir] = :none; e[:weight] = 1 }
214
+ (g.marr0017 << g._028).set { |e| e[:dir] = :none; e[:weight] = 2 }
215
+ }.output( :png => "#{$0}.png" )