ruby-graphviz 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. data/CHANGELOG.rdoc +4 -0
  2. data/bin/dot2ruby +5 -5
  3. data/bin/gem2gv +18 -18
  4. data/bin/git2gv +20 -20
  5. data/bin/ruby2gv +26 -26
  6. data/bin/xml2gv +5 -5
  7. data/examples/sample06.rb +5 -5
  8. data/examples/sample12.rb +3 -3
  9. data/examples/sample13.rb +8 -8
  10. data/examples/sample14.rb +8 -8
  11. data/examples/sample15.rb +1 -1
  12. data/examples/sample17.rb +7 -7
  13. data/examples/sample19.rb +10 -10
  14. data/examples/sample20.rb +2 -2
  15. data/examples/sample21.rb +1 -1
  16. data/examples/sample28.rb +1 -1
  17. data/examples/sample31.rb +1 -1
  18. data/examples/sample33.rb +10 -10
  19. data/examples/sample34.rb +1 -1
  20. data/examples/sample35.rb +7 -7
  21. data/examples/sample36.rb +2 -2
  22. data/examples/sample40.rb +4 -4
  23. data/examples/sample44.rb +72 -72
  24. data/examples/sample45.rb +4 -4
  25. data/examples/sample48.rb +7 -7
  26. data/examples/sample50.rb +1 -1
  27. data/examples/sample52.rb +2 -2
  28. data/examples/sample53.rb +2 -2
  29. data/examples/sample54.rb +3 -3
  30. data/examples/sample60.rb +2 -2
  31. data/examples/sample61.rb +2 -2
  32. data/examples/sample62.rb +2 -2
  33. data/examples/sample99.rb +15 -15
  34. data/examples/theory/pert.rb +2 -2
  35. data/examples/theory/tests.rb +2 -2
  36. data/lib/graphviz.rb +140 -140
  37. data/lib/graphviz/attrs.rb +6 -11
  38. data/lib/graphviz/constants.rb +35 -35
  39. data/lib/graphviz/core_ext.rb +1 -1
  40. data/lib/graphviz/dot2ruby.rb +7 -7
  41. data/lib/graphviz/dsl.rb +5 -5
  42. data/lib/graphviz/edge.rb +13 -13
  43. data/lib/graphviz/elements.rb +5 -5
  44. data/lib/graphviz/ext.rb +1 -1
  45. data/lib/graphviz/family_tree.rb +15 -15
  46. data/lib/graphviz/family_tree/couple.rb +11 -11
  47. data/lib/graphviz/family_tree/generation.rb +6 -6
  48. data/lib/graphviz/family_tree/person.rb +13 -13
  49. data/lib/graphviz/graphml.rb +39 -39
  50. data/lib/graphviz/math/matrix.rb +23 -23
  51. data/lib/graphviz/node.rb +8 -8
  52. data/lib/graphviz/nothugly.rb +3 -3
  53. data/lib/graphviz/theory.rb +8 -8
  54. data/lib/graphviz/types.rb +3 -3
  55. data/lib/graphviz/types/arrow_type.rb +3 -3
  56. data/lib/graphviz/types/color.rb +2 -2
  57. data/lib/graphviz/types/color_list.rb +2 -2
  58. data/lib/graphviz/types/esc_string.rb +2 -2
  59. data/lib/graphviz/types/gv_bool.rb +3 -3
  60. data/lib/graphviz/types/gv_double.rb +3 -3
  61. data/lib/graphviz/types/html_string.rb +2 -2
  62. data/lib/graphviz/types/lbl_string.rb +2 -2
  63. data/lib/graphviz/types/rect.rb +2 -2
  64. data/lib/graphviz/types/spline_type.rb +9 -9
  65. data/lib/graphviz/utils.rb +13 -13
  66. data/lib/graphviz/utils/colors.rb +35 -35
  67. data/lib/graphviz/xml.rb +24 -24
  68. data/setup.rb +4 -4
  69. data/test/test_graph.rb +9 -9
  70. data/test/test_subgraph.rb +1 -1
  71. data/test/test_theory.rb +4 -4
  72. data/test/test_utils_colors.rb +4 -4
  73. metadata +2 -2
data/examples/sample06.rb CHANGED
@@ -4,7 +4,7 @@ require "graphviz"
4
4
  GraphViz::new( "G", :rankdir => "LR", :type => "graph" ) { |graph|
5
5
  graph.cluster0 { |cluster|
6
6
  cluster[:label] = "Back Office"
7
-
7
+
8
8
  cluster.fatman.set { |n|
9
9
  n.label = "FatMan"
10
10
  n.shape = "rect"
@@ -14,10 +14,10 @@ GraphViz::new( "G", :rankdir => "LR", :type => "graph" ) { |graph|
14
14
  n.shape = "rect"
15
15
  }
16
16
  }
17
-
17
+
18
18
  graph.cluster1 { |cluster|
19
19
  cluster[:label] = "DMZ"
20
-
20
+
21
21
  cluster.dupont.set { |n|
22
22
  n.label = "Dupont"
23
23
  n.shape = "rect"
@@ -30,13 +30,13 @@ GraphViz::new( "G", :rankdir => "LR", :type => "graph" ) { |graph|
30
30
 
31
31
  graph.cluster2() { |cluster|
32
32
  cluster[:label] = "Front Office"
33
-
33
+
34
34
  cluster.door.set { |n|
35
35
  n.label = "Door"
36
36
  n.shape = "rect"
37
37
  }
38
38
  }
39
-
39
+
40
40
  graph.cluster0.fatman << graph.cluster1.dupont
41
41
  graph.cluster0.fatman << graph.cluster1.dupond
42
42
  graph.cluster0.grobil << graph.cluster1.dupont
data/examples/sample12.rb CHANGED
@@ -19,12 +19,12 @@ g.cluster0( ) do |cluster|
19
19
  cluster[:label] = "process #1"
20
20
  cluster[:style] = "filled"
21
21
  cluster[:color] = "lightgrey"
22
-
22
+
23
23
  cluster.a0 :style => "filled", :color => "white"
24
24
  cluster.a1 :style => "filled", :color => "white"
25
25
  cluster.a2 :style => "filled", :color => "white"
26
26
  cluster.a3 :style => "filled", :color => "white"
27
-
27
+
28
28
  cluster.a0 << cluster.a1
29
29
  cluster.a1 << cluster.a2
30
30
  cluster.a2 << cluster.a3
@@ -35,7 +35,7 @@ g.cluster1( :label => "process #2" ) do |cluster|
35
35
  cluster.b1 :style => "filled", :color => "blue"
36
36
  cluster.b2 :style => "filled", :color => "blue"
37
37
  cluster.b3 :style => "filled", :color => "blue"
38
-
38
+
39
39
  cluster.b0 << cluster.b1
40
40
  cluster.b1 << cluster.b2
41
41
  cluster.b2 << cluster.b3
data/examples/sample13.rb CHANGED
@@ -6,38 +6,38 @@ require "graphviz"
6
6
  GraphViz::new( "G" ) { |graph|
7
7
  graph.node[:shape] = "ellipse"
8
8
  graph.node[:color] = "black"
9
-
9
+
10
10
  graph[:color] = "black"
11
-
11
+
12
12
  graph.cluster0( ) do |cluster|
13
13
  cluster[:label] = "process #1"
14
14
  cluster[:style] = "filled"
15
15
  cluster[:color] = "lightgrey"
16
-
16
+
17
17
  cluster.a0 :style => "filled", :color => "white"
18
18
  cluster.a1 :style => "filled", :color => "white"
19
19
  cluster.a2 :style => "filled", :color => "white"
20
20
  cluster.a3 :style => "filled", :color => "white"
21
-
21
+
22
22
  cluster.a0 << cluster.a1
23
23
  cluster.a1 << cluster.a2
24
24
  cluster.a2 << cluster.a3
25
25
  end
26
-
26
+
27
27
  graph.cluster1( :label => "process #2" ) do |cluster|
28
28
  cluster.b0 :style => "filled", :color => "blue"
29
29
  cluster.b1 :style => "filled", :color => "blue"
30
30
  cluster.b2 :style => "filled", :color => "blue"
31
31
  cluster.b3 :style => "filled", :color => "blue"
32
-
32
+
33
33
  cluster.b0 << cluster.b1
34
34
  cluster.b1 << cluster.b2
35
35
  cluster.b2 << cluster.b3
36
36
  end
37
-
37
+
38
38
  graph.start :shape => "Mdiamond"
39
39
  graph.endn :shape => "Msquare", :label => "end"
40
-
40
+
41
41
  graph.start << graph.cluster0.a0
42
42
  graph.start << graph.cluster1.b0
43
43
  graph.cluster0.a1 << graph.cluster1.b3
data/examples/sample14.rb CHANGED
@@ -6,34 +6,34 @@ require "graphviz"
6
6
  GraphViz::new( "G" ) { |graph|
7
7
  graph.node[:shape] = "ellipse"
8
8
  graph.node[:color] = "black"
9
-
9
+
10
10
  graph[:color] = "black"
11
-
11
+
12
12
  graph.cluster0( ) do |cluster|
13
13
  cluster[:label] = "process #1"
14
14
  cluster[:style] = "filled"
15
15
  cluster[:color] = "lightgrey"
16
-
16
+
17
17
  cluster.node[:style] = "filled"
18
18
  cluster.node[:color] = "white"
19
-
19
+
20
20
  cluster.a0 << cluster.a1
21
21
  cluster.a1 << cluster.a2
22
22
  cluster.a2 << cluster.a3
23
23
  end
24
-
24
+
25
25
  graph.cluster1( :label => "process #2", :color => "blue" ) do |cluster|
26
26
  cluster.node[:style] = "filled"
27
27
  cluster.node[:color] = "lightgrey"
28
-
28
+
29
29
  cluster.b0 << cluster.b1
30
30
  cluster.b1 << cluster.b2
31
31
  cluster.b2 << cluster.b3
32
32
  end
33
-
33
+
34
34
  graph.start :shape => "Mdiamond"
35
35
  graph.endn :shape => "Msquare", :label => "end"
36
-
36
+
37
37
  graph.start << graph.cluster0.a0
38
38
  graph.start << graph.cluster1.b0
39
39
  graph.cluster0.a1 << graph.cluster1.b3
data/examples/sample15.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
- # fdp example
3
+ # fdp example
4
4
  # see : http://www.graphviz.org/Gallery/undirected/fdpclust.html
5
5
 
6
6
  $:.unshift( "../lib" );
data/examples/sample17.rb CHANGED
@@ -5,20 +5,20 @@ require "graphviz"
5
5
 
6
6
  GraphViz::new( "G", :type => "graph", :rankdir => "LR", :bgcolor => "#808080" ) { |graph|
7
7
  graph.edge[:dir] = "none"
8
-
8
+
9
9
  graph.node[:width] = "0.3"
10
- graph.node[:height] = "0.3"
10
+ graph.node[:height] = "0.3"
11
11
  graph.node[:label] = ""
12
-
12
+
13
13
  _ = {}
14
-
14
+
15
15
  ("1".."8").each do |v|
16
16
  _[v] = graph.add_nodes( v, :shape => "circle", :style => "invis")
17
17
  end
18
18
  ["10","20","30","40","50","60","70","80"].each do |v|
19
19
  _[v] = graph.add_nodes( v, :shape => "circle", :style => "invis")
20
20
  end
21
-
21
+
22
22
  ("a".."x").each do |v|
23
23
  _[v] = graph.add_nodes( v, :shape => "circle")
24
24
  end
@@ -26,7 +26,7 @@ GraphViz::new( "G", :type => "graph", :rankdir => "LR", :bgcolor => "#808080" )
26
26
  ("A".."X").each do |v|
27
27
  _[v] = graph.add_nodes( v, :shape => "diamond")
28
28
  end
29
-
29
+
30
30
  (_["1"] << _["a"])[:color]="#0000ff"
31
31
  (_["a"] << _["A"])[:color]="#0000ff"
32
32
  (_["a"] << _["B"])[:color]="#0000ff"
@@ -51,7 +51,7 @@ GraphViz::new( "G", :type => "graph", :rankdir => "LR", :bgcolor => "#808080" )
51
51
  (_["8"] << _["h"])[:color]="#ff00ff"
52
52
  (_["h"] << _["H"])[:color]="#ff00ff"
53
53
  (_["h"] << _["G"])[:color]="#ff00ff"
54
-
54
+
55
55
  graph.edge[:color]="#ff0000:#0000ff"
56
56
  _["A"] << _["i"]; _["i"] << [_["I"], _["K"]]
57
57
  _["B"] << _["j"]; _["j"] << [_["J"], _["L"]]
data/examples/sample19.rb CHANGED
@@ -6,13 +6,13 @@ require "graphviz"
6
6
  GraphViz::new( "ER", :type => "graph", :use => "neato" ) { |graph|
7
7
  graph.node[:shape] = "box"
8
8
  graph.course; graph.institute; graph.student
9
-
9
+
10
10
  graph.node[:shape] = "ellipse"
11
11
  graph.name0(:label => "name")
12
12
  graph.name1(:label => "name")
13
13
  graph.name2(:label => "name")
14
14
  graph.code; graph.grade; graph.number
15
-
15
+
16
16
  graph.node[:shape] = "diamond"
17
17
  graph.node[:style] = "filled"
18
18
  graph.node[:color] = "lightgrey"
@@ -22,34 +22,34 @@ GraphViz::new( "ER", :type => "graph", :use => "neato" ) { |graph|
22
22
 
23
23
  graph.name0 << graph.course;
24
24
  graph.code << graph.course;
25
-
25
+
26
26
  (graph.course << graph.ci).set { |e|
27
27
  e.label = "n"
28
28
  e.len = "1.00"
29
29
  }
30
-
30
+
31
31
  e = (graph.ci << graph.institute)
32
32
  e.label = "1"
33
33
  e[:len] = "1.00"
34
-
34
+
35
35
  graph.institute << graph.name1;
36
-
36
+
37
37
  e = (graph.institute << graph.si)
38
38
  e[:label] = "1"
39
39
  e[:len] = "1.00"
40
-
40
+
41
41
  e = (graph.si << graph.student)
42
42
  e[:label] = "n"
43
43
  e[:len] = "1.00"
44
-
44
+
45
45
  graph.student << graph.grade
46
46
  graph.student << graph.name2
47
47
  graph.student << graph.number
48
-
48
+
49
49
  e = (graph.student << graph.sc)
50
50
  e[:label] = "m"
51
51
  e[:len] = "1.00"
52
-
52
+
53
53
  e = (graph.sc << graph.course)
54
54
  e[:label] = "n"
55
55
  e[:len] = "1.00"
data/examples/sample20.rb CHANGED
@@ -12,7 +12,7 @@ end
12
12
  GraphViz::new( "g", :rankdir => "LR", :type => "digraph" ) { |g|
13
13
  g.node[:fontsize] = "16"
14
14
  g.node[:shape] = "record"
15
-
15
+
16
16
  g.node0( :label => "<f0> 0x10ba8| <f1>" )
17
17
  g.node1( :label => "<f0> 0xf7fc4380| <f1> | <f2> |-1" )
18
18
  g.node2( :label => "<f0> 0xf7fc44b8| | |2" )
@@ -26,7 +26,7 @@ GraphViz::new( "g", :rankdir => "LR", :type => "digraph" ) { |g|
26
26
  g.node10( :label => "<f0> (nil)| <f1> | <f2> |-1" )
27
27
  g.node11( :label => "<f0> (nil)| <f1> | <f2> |-1" )
28
28
  g.node12( :label => "<f0> 0xf7fc43e0| | |1" )
29
-
29
+
30
30
  g.add_edges( g.node0(:f0), g.node1(:f0) )
31
31
  g.add_edges( g.node0(:f1), g.node2(:f0) )
32
32
  g.add_edges( g.node1(:f0), g.node3(:f0) )
data/examples/sample21.rb CHANGED
@@ -8,5 +8,5 @@ require "graphviz"
8
8
  g.command(:URL => "http://www.research.att.com/base.html")
9
9
  g._output(:label => "output", :URL => "colors.html")
10
10
  g.command << g._output
11
- }.output( format => file )
11
+ }.output( format => file )
12
12
  end
data/examples/sample28.rb CHANGED
@@ -5,7 +5,7 @@ require "graphviz"
5
5
 
6
6
  GraphViz.new(:G){ |g|
7
7
  g[:ratio => "auto", :label => "I love the world!"]
8
-
8
+
9
9
  g.hello( :label => "Hello", :color => "blue" ) # You can do this
10
10
  g.none[ :label => "World", :color => "green" ] # or that
11
11
  (g.hello - g.none)[:style => :bold, :label => " I say"]
data/examples/sample31.rb CHANGED
@@ -6,5 +6,5 @@ require "graphviz"
6
6
  GraphViz.new(:g){ |g|
7
7
  a = g.add_nodes( "A:B:C", :shape => :record )
8
8
  b = g.add_nodes( "D:E:F", :shape => :ellipse )
9
- a << b
9
+ a << b
10
10
  }.save( :png => "#{$0}.png" )
data/examples/sample33.rb CHANGED
@@ -5,38 +5,38 @@ tree = GraphViz::FamilyTree.new do
5
5
  generation do
6
6
  abraham.is_a_man( "Abraham" )
7
7
  mona.is_a_woman( "Mona" )
8
-
8
+
9
9
  abraham.is_maried_with mona
10
-
10
+
11
11
  clancy.is_a_man( "Clancy" )
12
12
  jackeline.is_a_woman( "Jackeline" )
13
-
13
+
14
14
  clancy.is_maried_with jackeline
15
15
  end
16
-
16
+
17
17
  generation do
18
18
  herb.is_a_man( "Herb" )
19
19
  homer.is_a_man( "Homer" )
20
-
20
+
21
21
  marge.is_a_woman( "Marge" )
22
22
  patty.is_a_woman( "Patty" )
23
- selma.is_a_woman( "Selma" )
23
+ selma.is_a_woman( "Selma" )
24
24
 
25
25
  homer.is_maried_with marge
26
26
  end
27
-
27
+
28
28
  couple( abraham, mona ).kids( herb, homer )
29
29
  couple( clancy, jackeline ).kids( marge, patty, selma )
30
-
30
+
31
31
  generation do
32
32
  bart.is_a_boy( "Bart" )
33
33
  lisa.is_a_girl( "Lisa" )
34
34
  maggie.is_a_girl( "Maggie" )
35
35
  ling.is_a_boy( "Ling" )
36
36
  end
37
-
37
+
38
38
  couple( homer, marge ).kids( bart, lisa, maggie )
39
-
39
+
40
40
  ling.kids( selma )
41
41
  end
42
42
 
data/examples/sample34.rb CHANGED
@@ -5,7 +5,7 @@ require "graphviz"
5
5
 
6
6
  GraphViz.new(:G) { |g|
7
7
  g[:color] = "black"
8
-
8
+
9
9
  g.one :label => "1"
10
10
 
11
11
  # This is an anonymous graph
data/examples/sample35.rb CHANGED
@@ -6,24 +6,24 @@ require "graphviz"
6
6
  GraphViz.digraph( :G ) { |g|
7
7
  g[:truecolor => true, :bgcolor => "transparent", :rankdir => "LR"]
8
8
  g.node[:label => "\N"]
9
-
9
+
10
10
  c1 = g.subgraph { |c|
11
11
  c[:rank => "same"]
12
12
  c.mygraph[
13
- :label => '# mygraph.dot\ldigraph G {\l Hello -> World\l}\l',
14
- :shape => "note",
15
- :fontname => "Courier",
13
+ :label => '# mygraph.dot\ldigraph G {\l Hello -> World\l}\l',
14
+ :shape => "note",
15
+ :fontname => "Courier",
16
16
  :fontsize => 10
17
17
  ]
18
18
  c.image[ :label => "", :shape => "note", :image => "./hello.png"]
19
19
  }
20
-
20
+
21
21
  c2 = g.subgraph { |c|
22
22
  c[:rank => "same"]
23
23
  c.mysite[:label => "\nexample.com\n ", :shape => "component", :fontname => "Arial"]
24
24
  c.dotgraph[:label => "\ndotgraph.net\n ", :shape => "component", :fontname => "Arial"]
25
25
  }
26
-
26
+
27
27
  g.cluster_0 { |c|
28
28
  c[
29
29
  :label => "my_page.html",
@@ -33,7 +33,7 @@ GraphViz.digraph( :G ) { |g|
33
33
  ]
34
34
  c.zeimage[:label => "", :shape => "note", :image => "./hello.png"]
35
35
  }
36
-
36
+
37
37
  (c1.mygraph << c2.mysite)[:color => "blue"]
38
38
  (c2.dotgraph << c1.image)[:color => "red"]
39
39
  (c2.dotgraph << c2.mysite)[:color => "red"]
data/examples/sample36.rb CHANGED
@@ -6,12 +6,12 @@ require "graphviz"
6
6
  GraphViz.graph( :G ) { |g|
7
7
  last_line = []
8
8
  node_number = 0
9
-
9
+
10
10
  100.times do |j|
11
11
  # New_Line
12
12
  new_line = []
13
13
  c = g.subgraph( :rank => "same" )
14
-
14
+
15
15
  100.times do |i|
16
16
  current_node = c.add_nodes( "N#{node_number}", :shape => "point", :label => "" )
17
17
  last_node = new_line[-1]
data/examples/sample40.rb CHANGED
@@ -3,12 +3,12 @@ require "graphviz"
3
3
 
4
4
  graph = GraphViz.new( :G, :type => :digraph )
5
5
 
6
- node1 = graph.add_nodes("hello:world",
7
- "shape" => "record",
6
+ node1 = graph.add_nodes("hello:world",
7
+ "shape" => "record",
8
8
  "label" => "<left>|<f1> 1|<right>" )
9
9
 
10
- node2 = graph.add_nodes("2",
11
- "shape" => "record",
10
+ node2 = graph.add_nodes("2",
11
+ "shape" => "record",
12
12
  "label" => "<left>|<f1> 2|<right>" )
13
13
 
14
14
  graph.add_edges( {node1 => :left}, node2 )
data/examples/sample44.rb CHANGED
@@ -15,78 +15,78 @@ g.node["shape"] = "ellipse"
15
15
  g.edge["arrowhead"] = "normal"
16
16
 
17
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"
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
90
  ].each { |s|
91
91
  p = "p_" << s
92
92
  g.add_nodes( p, "shape" => "point" )