ruby-graphviz 0.9.21 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  = Ruby/GraphViz
2
2
 
3
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Gregoire Lejeune
3
+ Copyright (C) 2004-2011 Gregoire Lejeune
4
4
 
5
5
  * Doc : http://rdoc.info/projects/glejeune/Ruby-Graphviz
6
6
  * Sources : http://github.com/glejeune/Ruby-Graphviz
@@ -19,12 +19,23 @@ Interface to the GraphViz graphing tool
19
19
  <b>We are close to the 1.0 version... So if you use one of the following method or attribut, please update your code because they will be remove.</b>
20
20
 
21
21
  * GraphViz::Node#name must be replaced by GraphViz::Node#id
22
- * A html attribut must be replaced by a label attribut (<tt>:label => '<<html/>>'</tt>)
22
+ * The html attribut must be replaced by a label attribut (<tt>:label => '<<html/>>'</tt>)
23
23
  * :output option must be replaced by :<format> => :<file>
24
24
  * :file option must be replaced by :<format> => :<file>
25
25
 
26
26
  == CHANGELOG
27
27
 
28
+ === 1.0.0 :
29
+ * \o/
30
+ * GraphViz::Node#name has been removed - use GraphViz::Node#id
31
+ * The html attribut has been removed - use a label attribut (<tt>:label => '<<html/>>'</tt>)
32
+ * :output option has been removed - use :<format> => :<file>
33
+ * :file option has been removed - use :<format> => :<file>
34
+ * Add GraphViz#to_s
35
+ * Add GraphViz#add (see sample59.rb)
36
+ * GraphViz::XML.output is deprecated, use GraphViz::XML.graph.output
37
+ * Issue #22 : Error when generating a graph with an ID containing a space.
38
+
28
39
  === 0.9.21 :
29
40
  * Add attributs "label_scheme" and "rotation"
30
41
  * Add missing options :
data/bin/xml2gv CHANGED
@@ -93,4 +93,4 @@ if xFile.nil? == true
93
93
  end
94
94
 
95
95
  gvxml = GraphViz::XML::new( xFile, :text => true, :attrs => true )
96
- gvxml.output( xOutFormat => xOutFile, :path => xGVPath )
96
+ gvxml.graph.output( xOutFormat => xOutFile, :path => xGVPath )
@@ -0,0 +1,52 @@
1
+ digraph fig7 {
2
+ node [shape=rect]
3
+ edge [dir=none]
4
+
5
+ subgraph compound1 {
6
+ a [label="LFILE"]
7
+ b [label="*\rLREC"]
8
+ c [label="o\rMATCHED LREC"]
9
+ d [label="o\rUNMATCHED LREC"]
10
+
11
+ a -> {b}
12
+ b -> {c d}
13
+ }
14
+
15
+ subgraph compound2 {
16
+ e [label="RFILE"]
17
+ f [label="*\rRREC"]
18
+ g [label="o\rMATCHED RREC"]
19
+ h [label="o\rUNMATCHED RREC"]
20
+
21
+ e -> {f}
22
+ f -> {g h}
23
+ }
24
+
25
+ subgraph compound3 {
26
+ i [label="REPORT"]
27
+ j [label="*\rLINE"]
28
+ k [label="o\rTYPE 1"]
29
+ l [label="o\rTYPE 2"]
30
+ m [label="o\rTYPE 3"]
31
+ n [label="o\rTYPE 4"]
32
+
33
+ i -> {j}
34
+ j -> {k l m n}
35
+ }
36
+
37
+ {rank=same a e i}
38
+ {rank=same b f j}
39
+ {rank=same c d g h k l m n}
40
+
41
+ subgraph correspondences {
42
+ edge [dir=both]
43
+
44
+ a -> e
45
+ e -> i
46
+
47
+ c -> g:s
48
+ d -> l:s
49
+ g -> k:s
50
+ h -> m:s
51
+ }
52
+ }
@@ -4,4 +4,4 @@ $:.unshift( "../lib" )
4
4
  require 'graphviz/xml'
5
5
 
6
6
  gvxml = GraphViz::XML::new( File.join( File.dirname(__FILE__), "test.xml" ), :text => true, :attrs => true )
7
- gvxml.output( :png => "#{$0}.png", :use => "dot" )
7
+ gvxml.graph.output( :png => "#{$0}.png", :use => "dot" )
@@ -0,0 +1,14 @@
1
+ $:.unshift( "../lib" )
2
+ require "graphviz"
3
+
4
+ graph = {
5
+ "a" => {
6
+ "b" => "d",
7
+ "c" => ["e", "f", "a"]
8
+ },
9
+ "g" => "e",
10
+ }
11
+
12
+ g = GraphViz::new( "G" )
13
+ g.add(graph)
14
+ g.output( :png => "#{$0}.png" )
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ asm = GraphViz::new( "My ASM" )
7
+
8
+ my = asm.add_node("My")
9
+ asmn = asm.add_node("ASM")
10
+ asm.add_edge(my, asmn)
11
+
12
+ asm.output( :png => "#{$0}.png" )
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../lib" );
4
+ require "graphviz"
5
+
6
+ asm = GraphViz::new( "" )
7
+
8
+ my = asm.add_node("My")
9
+ asmn = asm.add_node("ASM")
10
+ asm.add_edge(my, asmn)
11
+
12
+ asm.output( :png => "#{$0}.png" )
@@ -93,24 +93,26 @@ class GraphViz
93
93
  # Return the GraphViz::Node object created
94
94
  #
95
95
  def add_node( xNodeName, hOpts = {} )
96
- @hoNodes[xNodeName] = GraphViz::Node::new( xNodeName, self )
97
- @hoNodes[xNodeName].index = @elements_order.size_of( "node" )
96
+ return @hoNodes[xNodeName] || Proc.new {
97
+ @hoNodes[xNodeName] = GraphViz::Node::new( xNodeName, self )
98
+ @hoNodes[xNodeName].index = @elements_order.size_of( "node" )
98
99
 
99
- unless hOpts.keys.include?(:label) or hOpts.keys.include?("label")
100
- hOpts[:label] = xNodeName
101
- end
100
+ unless hOpts.keys.include?(:label) or hOpts.keys.include?("label")
101
+ hOpts[:label] = xNodeName
102
+ end
102
103
 
103
- hOpts.each do |xKey, xValue|
104
- @hoNodes[xNodeName][xKey.to_s] = xValue
105
- end
104
+ hOpts.each do |xKey, xValue|
105
+ @hoNodes[xNodeName][xKey.to_s] = xValue
106
+ end
106
107
 
107
- @elements_order.push( {
108
- "type" => "node",
109
- "name" => xNodeName,
110
- "value" => @hoNodes[xNodeName]
111
- } )
108
+ @elements_order.push( {
109
+ "type" => "node",
110
+ "name" => xNodeName,
111
+ "value" => @hoNodes[xNodeName]
112
+ } )
112
113
 
113
- return( @hoNodes[xNodeName] )
114
+ return( @hoNodes[xNodeName] )
115
+ }.call
114
116
  end
115
117
 
116
118
  #
@@ -277,8 +279,20 @@ class GraphViz
277
279
  end
278
280
  end
279
281
 
282
+ #
283
+ # Add nodes and edges defined by a Hash
284
+ #
285
+ def add(h)
286
+ if h.kind_of? Hash
287
+ h.each do |node, data|
288
+ add_hash_edge(node, data)
289
+ end
290
+ end
291
+ end
292
+
280
293
  #
281
294
  # Return the graph type (graph digraph)
295
+ #
282
296
  def type
283
297
  @oGraphType
284
298
  end
@@ -451,15 +465,6 @@ class GraphViz
451
465
  hOpts.each do |xKey, xValue|
452
466
  xValue = xValue.to_s unless xValue.nil? or [Class, TrueClass, FalseClass].include?(xValue.class)
453
467
  case xKey.to_s
454
- when "output"
455
- warn ":output option is deprecated, please use :<format> => :<file> -- BE CAREFUL, it will be removed in the 1.0 version!"
456
- if FORMATS.index( xValue ).nil? == true
457
- raise ArgumentError, "output format '#{xValue}' invalid"
458
- end
459
- @format = xValue
460
- when "file"
461
- warn ":file option is deprecated, please use :<format> => :<file> -- BE CAREFUL, it will be removed in the 1.0 version!"
462
- @filename = xValue
463
468
  when "use"
464
469
  if PROGRAMS.index( xValue ).nil? == true
465
470
  raise ArgumentError, "can't use '#{xValue}'"
@@ -625,6 +630,10 @@ class GraphViz
625
630
 
626
631
  alias :save :output
627
632
 
633
+ def to_s
634
+ self.output(:none => String)
635
+ end
636
+
628
637
  #
629
638
  # Get the graph name
630
639
  #
@@ -698,9 +707,6 @@ class GraphViz
698
707
  @@errors = v
699
708
  when "extlibs"
700
709
  @@extlibs = v.split( "," ).map{ |x| x.strip }
701
- when "output"
702
- warn ":output option is deprecated!"
703
- @@format = v
704
710
  else
705
711
  warn "Invalide option #{k}!"
706
712
  end
@@ -796,20 +802,11 @@ class GraphViz
796
802
 
797
803
  hOpts.each do |xKey, xValue|
798
804
  case xKey.to_s
799
- when "output"
800
- warn ":output option is deprecated, please use :<format> => :<file>"
801
- if FORMATS.index( xValue.to_s ).nil? == true
802
- raise ArgumentError, "output format '#{xValue}' invalid"
803
- end
804
- @format = xValue.to_s
805
805
  when "use"
806
806
  if PROGRAMS.index( xValue.to_s ).nil? == true
807
807
  raise ArgumentError, "can't use '#{xValue}'"
808
808
  end
809
809
  @prog = xValue.to_s
810
- when "file"
811
- warn ":file option is deprecated, please use :<format> => :<file>"
812
- @filename = xValue.to_s
813
810
  when "parent"
814
811
  @oParentGraph = xValue
815
812
  when "type"
@@ -833,6 +830,19 @@ class GraphViz
833
830
  yield( self ) if( block )
834
831
  end
835
832
 
833
+ # Edge between a node and a Hash
834
+ # Used by GraphViz#add
835
+ def add_hash_edge(node, hash)
836
+ if hash.kind_of? Hash
837
+ hash.each do |nt, data|
838
+ add_edge(node, nt)
839
+ add_hash_edge(nt, data)
840
+ end
841
+ else
842
+ add_edge(node, hash)
843
+ end
844
+ end
845
+
836
846
  #
837
847
  # Create a new undirected graph
838
848
  #
@@ -869,21 +879,12 @@ class GraphViz
869
879
  :unquote_empty => false,
870
880
  }.merge(opts)
871
881
 
872
- if (options[:force] or str.match( /\A[a-zA-Z_]+[a-zA-Z0-9_]*\Z/ ).nil?) and options[:unquote_empty] == false
873
- '"' + str.gsub('"', '\\"').gsub("\n", '\\\\n').gsub(".","\\.") + '"'
874
- ## MAYBE WE NEED TO USE THIS ONE ## str.inspect.gsub(".","\\.").gsub( "\\\\", "\\" )
882
+ if (options[:force] or str.match( /\A[a-zA-Z_]+[a-zA-Z0-9_]*\Z/ ).nil?)
883
+ unless options[:unquote_empty] == true and str.size == 0
884
+ '"' + str.gsub('"', '\\"').gsub("\n", '\\\\n').gsub(".","\\.") + '"'
885
+ end
875
886
  else
876
887
  str
877
888
  end
878
- end
879
-
880
- #def self.escape(str, force = false ) #:nodoc:
881
- # if force or str.match( /\A[a-zA-Z_]+[a-zA-Z0-9_]*\Z/ ).nil?
882
- # '"' + str.gsub('"', '\\"').gsub("\n", '\\\\n').gsub(".","\\.") + '"'
883
- # ## MAYBE WE NEED TO USE THIS ONE ## str.inspect.gsub(".","\\.").gsub( "\\\\", "\\" )
884
- # else
885
- # str
886
- # end
887
- #end
888
-
889
+ end
889
890
  end
@@ -40,7 +40,7 @@
40
40
  # C => cluster
41
41
  #
42
42
  module Constants
43
- RGV_VERSION = "0.9.21"
43
+ RGV_VERSION = "1.0.0"
44
44
 
45
45
  ## Const: Output formats
46
46
  FORMATS = [
@@ -166,7 +166,6 @@ module Constants
166
166
  "headtooltip" => { :usedBy => "E", :type => :EscString },
167
167
  "height" => { :usedBy => "N", :type => :GvDouble },
168
168
  "href" => { :usedBy => "NE", :type => :EscString },
169
- "html" => { :usedBy => "N", :type => :HtmlString }, # API extension -- Deprecated
170
169
  "id" => { :usedBy => "ENG", :type => :EscString },
171
170
  "image" => { :usedBy => "N", :type => :EscString },
172
171
  "imagescale" => { :usedBy => "N", :type => :EscString },
@@ -21,6 +21,8 @@ require 'rexml/document'
21
21
  class GraphViz
22
22
  class GraphML
23
23
  attr_reader :attributs
24
+
25
+ # The GraphViz object
24
26
  attr_accessor :graph
25
27
 
26
28
  DEST = {
@@ -35,6 +37,9 @@ class GraphViz
35
37
  'undirected' => :graph
36
38
  }
37
39
 
40
+ #
41
+ # Create a new GraphViz object from a GraphML file of string
42
+ #
38
43
  def initialize( file_or_str )
39
44
  data = ((File.file?( file_or_str )) ? File::new(file_or_str) : file_or_str)
40
45
  @xmlDoc = REXML::Document::new( data )
@@ -52,7 +57,7 @@ class GraphViz
52
57
  parse( @xmlDoc.root )
53
58
  end
54
59
 
55
- def parse( node )
60
+ def parse( node ) #:nodoc:
56
61
  #begin
57
62
  send( node.name.to_sym, node )
58
63
  #rescue NoMethodError => e
@@ -60,7 +65,7 @@ class GraphViz
60
65
  #end
61
66
  end
62
67
 
63
- def graphml( node )
68
+ def graphml( node ) #:nodoc:
64
69
  node.each_element( ) do |child|
65
70
  #begin
66
71
  send( "graphml_#{child.name}".to_sym, child )
@@ -70,7 +75,7 @@ class GraphViz
70
75
  end
71
76
  end
72
77
 
73
- def graphml_key( node )
78
+ def graphml_key( node ) #:nodoc:
74
79
  id = node.attributes['id']
75
80
  @current_attr = {
76
81
  :name => node.attributes['attr.name'],
@@ -91,11 +96,11 @@ class GraphViz
91
96
  @current_attr = nil
92
97
  end
93
98
 
94
- def graphml_key_default( node )
99
+ def graphml_key_default( node ) #:nodoc:
95
100
  @current_attr[:default] = node.texts().to_s
96
101
  end
97
102
 
98
- def graphml_graph( node )
103
+ def graphml_graph( node ) #:nodoc:
99
104
  @current_node = nil
100
105
 
101
106
  if @current_graph.nil?
@@ -128,11 +133,11 @@ class GraphViz
128
133
  @current_graph = previous_graph
129
134
  end
130
135
 
131
- def graphml_graph_data( node )
136
+ def graphml_graph_data( node ) #:nodoc:
132
137
  @current_graph[@attributs[:graphs][node.attributes['key']][:name]] = node.texts().to_s
133
138
  end
134
139
 
135
- def graphml_graph_node( node )
140
+ def graphml_graph_node( node ) #:nodoc:
136
141
  @current_node = {}
137
142
 
138
143
  node.each_element( ) do |child|
@@ -158,11 +163,11 @@ class GraphViz
158
163
  @current_node = nil
159
164
  end
160
165
 
161
- def graphml_graph_node_data( node )
166
+ def graphml_graph_node_data( node ) #:nodoc:
162
167
  @current_node[@attributs[:nodes][node.attributes['key']][:name]] = node.texts().to_s
163
168
  end
164
169
 
165
- def graphml_graph_node_port( node )
170
+ def graphml_graph_node_port( node ) #:nodoc:
166
171
  @current_node[:shape] = :record
167
172
  port = node.attributes['name']
168
173
  if @current_node[:label]
@@ -173,7 +178,7 @@ class GraphViz
173
178
  end
174
179
  end
175
180
 
176
- def graphml_graph_edge( node )
181
+ def graphml_graph_edge( node ) #:nodoc:
177
182
  source = node.attributes['source']
178
183
  source = {source => node.attributes['sourceport']} if node.attributes['sourceport']
179
184
  target = node.attributes['target']
@@ -192,11 +197,11 @@ class GraphViz
192
197
  @current_edge = nil
193
198
  end
194
199
 
195
- def graphml_graph_edge_data( node )
200
+ def graphml_graph_edge_data( node ) #:nodoc:
196
201
  @current_edge[@attributs[:edges][node.attributes['key']][:name]] = node.texts().to_s
197
202
  end
198
203
 
199
- def graphml_graph_hyperedge( node )
204
+ def graphml_graph_hyperedge( node ) #:nodoc:
200
205
  list = []
201
206
 
202
207
  node.each_element( ) do |child|
@@ -38,15 +38,6 @@ class GraphViz
38
38
  @index = nil
39
39
  end
40
40
 
41
- #
42
- # Get the node ID
43
- #
44
- def name
45
- # TODO : Remove in v1.0
46
- warn "GraphViz::Node#name is deprecated, please use GraphViz::Node#id! -- BE CAREFUL, it will be removed in the 1.0 version!"
47
- return self.id
48
- end
49
-
50
41
  #
51
42
  # Get the node ID
52
43
  #
@@ -164,12 +155,7 @@ class GraphViz
164
155
  @oAttrNode.data.delete("label")
165
156
  end
166
157
  @oAttrNode.data.each do |k, v|
167
- if k == "html"
168
- warn "html attribut is deprecated, please use label : :label => '<<html />>' -- BE CAREFUL, it will be removed in the 1.0 version!"
169
- xAttr << xSeparator + "label = " + v.to_gv
170
- else
171
- xAttr << xSeparator + k + " = " + v.to_gv
172
- end
158
+ xAttr << xSeparator + k + " = " + v.to_gv
173
159
  xSeparator = ", "
174
160
  end
175
161
  if xAttr.length > 0
@@ -20,31 +20,17 @@ require 'rexml/document'
20
20
  class GraphViz
21
21
  class XML
22
22
 
23
- @oReXML
24
- @oGraph
25
- @xNodeName
26
- @bShowText
27
- @bShowAttrs
23
+ # The GraphViz object
24
+ attr_accessor :graph
28
25
 
29
26
  #
30
27
  # Generate the graph
31
28
  #
32
- # Options :
33
- # * :output : Output format (Constants::FORMATS)
34
- # * :file : Output file name
35
- # * :use : Program to use (Constants::PROGRAMS)
36
- # * :path : Program PATH
37
- # * :<format> => <file> : <file> can be
38
- # * a file name
39
- # * nil, then the output will be printed to STDOUT
40
- # * String, then the output will be returned as a String
41
- # * :errors : DOT error level (default 1)
42
- # * 0 = Error + Warning
43
- # * 1 = Error
44
- # * 2 = none
29
+ # THIS METHOD IS DEPRECATED, PLEASE USE GraphViz::XML.graph.output
45
30
  #
46
31
  def output( *hOpt )
47
- @oGraph.output( *hOpt )
32
+ warn "GraphViz::XML.output is deprecated, use GraphViz::XML.graph.output"
33
+ @graph.output( *hOpt )
48
34
  end
49
35
 
50
36
  private
@@ -54,7 +40,9 @@ class GraphViz
54
40
  #
55
41
  # In:
56
42
  # * xFile : XML File
57
- # * *hOpt : Graph options
43
+ # * *hOpt : Graph options:
44
+ # * :text : show text nodes (default true)
45
+ # * :attrs : show XML attributs (default true)
58
46
  #
59
47
  def initialize( xFile, *hOpt )
60
48
  @xNodeName = "00000"
@@ -75,7 +63,7 @@ class GraphViz
75
63
  end
76
64
 
77
65
  @oReXML = REXML::Document::new( File::new( xFile ) )
78
- @oGraph = GraphViz::new( "XML", *hOpt )
66
+ @graph = GraphViz::new( "XML", *hOpt )
79
67
  _init( @oReXML.root() )
80
68
  end
81
69
 
@@ -93,7 +81,7 @@ class GraphViz
93
81
 
94
82
  label << "}"
95
83
  end
96
- @oGraph.add_node( xLocalNodeName, "label" => label, "color" => "blue", "shape" => "record" )
84
+ @graph.add_node( xLocalNodeName, "label" => label, "color" => "blue", "shape" => "record" )
97
85
 
98
86
  ## Act: Search and add Text nodes
99
87
  if oXMLNode.has_text? == true and @bShowText == true
@@ -111,8 +99,8 @@ class GraphViz
111
99
  end
112
100
 
113
101
  if xText.length > 0
114
- @oGraph.add_node( xTextNodeName, "label" => xText, "color" => "black", "shape" => "ellipse" )
115
- @oGraph.add_edge( xLocalNodeName, xTextNodeName )
102
+ @graph.add_node( xTextNodeName, "label" => xText, "color" => "black", "shape" => "ellipse" )
103
+ @graph.add_edge( xLocalNodeName, xTextNodeName )
116
104
  end
117
105
  end
118
106
 
@@ -121,7 +109,7 @@ class GraphViz
121
109
 
122
110
  oXMLNode.each_element( ) do |oXMLChild|
123
111
  xChildNodeName = _init( oXMLChild )
124
- @oGraph.add_edge( xLocalNodeName, xChildNodeName )
112
+ @graph.add_edge( xLocalNodeName, xChildNodeName )
125
113
  end
126
114
 
127
115
  return( xLocalNodeName )
@@ -14,7 +14,7 @@ subgraph {
14
14
  mysite -> dotgraph [color = "blue"]
15
15
  }
16
16
  subgraph cluster_0 {
17
- color = "black"; label = "my_page.html"; fontname = "Courier"; fontsize = "10";
17
+ label = "my_page.html"; fontname = "Courier"; fontsize = "10"; color = "black";
18
18
  zeimage [label = "", shape = "note", image = "./hello.png"];
19
19
  }
20
20
  mygraph -> mysite [color = "blue"]
@@ -1,50 +1,50 @@
1
1
  digraph Solarsys {
2
- Sun [label = "Sun\n", fillcolor = "orange", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
2
+ Sun [label = "Sun\n", penwidth = "2", fillcolor = "orange", shape = "circle", fontsize = "12", style = "filled"];
3
3
  subgraph {
4
4
  rank = "same";
5
- Moon [label = "Moon\n", fillcolor = "red", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
6
- Earth [label = "Earth\n", fillcolor = "blue", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
5
+ Moon [label = "Moon\n", penwidth = "2", fillcolor = "red", shape = "circle", fontsize = "12", style = "filled"];
6
+ Earth [label = "Earth\n", penwidth = "2", fillcolor = "blue", shape = "circle", fontsize = "12", style = "filled"];
7
7
  Moon -> Earth [penwidth = "2", color = "black", labeltooltip = "distance"]
8
8
  }
9
9
  Sun -> Earth [penwidth = "2", color = "black", labeltooltip = "distance"]
10
10
  subgraph {
11
11
  rank = "same";
12
- Mercury [label = "Mercury\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
12
+ Mercury [label = "Mercury\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
13
13
  Sun -> Mercury [label = "distance", penwidth = "2", color = "black"]
14
14
  }
15
15
  subgraph {
16
16
  rank = "same";
17
- Venus [label = "Venus\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
17
+ Venus [label = "Venus\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
18
18
  Sun -> Venus [label = "distance", penwidth = "2", color = "black"]
19
19
  }
20
20
  subgraph {
21
21
  rank = "same";
22
- Mars [label = "Mars\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
22
+ Mars [label = "Mars\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
23
23
  Sun -> Mars [label = "distance", penwidth = "2", color = "black"]
24
24
  }
25
25
  subgraph {
26
26
  rank = "same";
27
- Jupiter [label = "Jupiter\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
27
+ Jupiter [label = "Jupiter\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
28
28
  Sun -> Jupiter [label = "distance", penwidth = "2", color = "black"]
29
29
  }
30
30
  subgraph {
31
31
  rank = "same";
32
- Saturn [label = "Saturn\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
32
+ Saturn [label = "Saturn\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
33
33
  Sun -> Saturn [label = "distance", penwidth = "2", color = "black"]
34
34
  }
35
35
  subgraph {
36
36
  rank = "same";
37
- Uranus [label = "Uranus\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
37
+ Uranus [label = "Uranus\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
38
38
  Sun -> Uranus [label = "distance", penwidth = "2", color = "black"]
39
39
  }
40
40
  subgraph {
41
41
  rank = "same";
42
- Neptune [label = "Neptune\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
42
+ Neptune [label = "Neptune\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
43
43
  Sun -> Neptune [label = "distance", penwidth = "2", color = "black"]
44
44
  }
45
45
  subgraph {
46
46
  rank = "same";
47
- Pluto [label = "Pluto\n", fillcolor = "green", penwidth = "2", shape = "circle", fontsize = "12", style = "filled"];
47
+ Pluto [label = "Pluto\n", penwidth = "2", fillcolor = "green", shape = "circle", fontsize = "12", style = "filled"];
48
48
  Sun -> Pluto [label = "distance", penwidth = "2", color = "black"]
49
49
  }
50
50
  }
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-graphviz
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 9
9
- - 21
10
- version: 0.9.21
9
+ - 0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gregoire Lejeune
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-26 00:00:00 +01:00
18
+ date: 2011-05-02 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -50,6 +50,7 @@ files:
50
50
  - examples/dot/genetic.dot
51
51
  - examples/dot/hello.dot
52
52
  - examples/dot/hello_test.rb
53
+ - examples/dot/JSP.dot
53
54
  - examples/dot/lion_share.dot
54
55
  - examples/dot/prof.dot
55
56
  - examples/dot/psg.dot
@@ -132,6 +133,9 @@ files:
132
133
  - examples/sample56.rb
133
134
  - examples/sample57.rb
134
135
  - examples/sample58.rb
136
+ - examples/sample59.rb
137
+ - examples/sample60.rb
138
+ - examples/sample61.rb
135
139
  - examples/sample99.rb
136
140
  - examples/sdlshapes/README
137
141
  - examples/sdlshapes/sdl.ps
@@ -224,6 +228,9 @@ files:
224
228
  - test/output/sample55.rb.png
225
229
  - test/output/sample56.rb.svg
226
230
  - test/output/sample58.rb.png
231
+ - test/output/sample59.rb.png
232
+ - test/output/sample60.rb.png
233
+ - test/output/sample61.rb.png
227
234
  - test/output/sample99.rb.png
228
235
  - test/support.rb
229
236
  - test/test_examples.rb
@@ -248,11 +255,11 @@ post_install_message: |
248
255
  For more information, see http://github.com/glejeune/Ruby-Graphviz/issues/#issue/13
249
256
  So if you use node ports, maybe you need to change your code.
250
257
 
251
- /!\ GraphViz::Node#name is deprecated and will be removed in version 1.0.0
258
+ /!\ GraphViz::Node#name has been removed!
252
259
 
253
- /!\ :output and :file options are deprecated and will be removed in version 1.0.0
260
+ /!\ :output and :file options have been removed!
254
261
 
255
- /!\ The html attribut is deprecated and will be removed in version 1.0.0
262
+ /!\ The html attribut has been removed!
256
263
  You can use the label attribut, as dot do it : :label => '<<html/>>'
257
264
 
258
265
  /!\ Version 0.9.17 introduce GraphML (http://graphml.graphdrawing.org/) support and