ruby-graphviz 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift( "../../lib" );
4
+ require "graphviz"
5
+
6
+ GraphViz.new(:g){ |g|
7
+ g[:center] = true
8
+ a = g.add_nodes("A", :shape => "rgv_box", :peripheries => 0)
9
+ b = g.add_nodes("Bonjour le monde\nComment va tu ?", :shape => "rgv_cloud", :peripheries => 0)
10
+ c = g.add_nodes("C", :shape => "rgv_flower", :peripheries => 0)
11
+ a << b << c
12
+ }.save( :ps => "#{$0}.ps", :extlib => "rgv.ps" )
data/examples/sample43.rb CHANGED
@@ -23,4 +23,4 @@ g.add_edges( {"struct1" => :f2}, {"struct3" => :here} )
23
23
 
24
24
  g.add_edges( "HTML", "struct1" )
25
25
 
26
- g.output( :path => '/usr/local/bin/', :png => "#{$0}.png" )
26
+ g.output( :path => ARGV[0], :png => "#{$0}.png" )
@@ -26,27 +26,29 @@ BEGIN {
26
26
  graph_t subgraph; graph_t pgraph;
27
27
  graph_t ofgraph;
28
28
 
29
- string xOut;
30
- if( ARGC == 0 ) {
31
- xOut = "_";
32
- } else {
33
- xOut = tolower(ARGV[0]);
34
- }
29
+ string xOut;
30
+ if( ARGC == 0 ) {
31
+ xOut = "_";
32
+ } else {
33
+ xOut = tolower(ARGV[0]);
34
+ }
35
35
 
36
36
  printf( "# This code was generated by dot2ruby.g\n\n" );
37
37
 
38
38
  string rubyfy( string s ) {
39
39
  string out;
40
40
  out = tolower( s );
41
- out = gsub( out, " ", "__" );
42
- out = gsub( out, "'", "" );
43
- out = gsub( out, "-", "_" );
44
- out = gsub( out, ".", "" );
45
- out = gsub( out, "%", "u" );
46
- out = gsub( out, "+", "" );
47
- out = gsub( out, "/", "_" );
41
+ out = gsub( out, "[!a-zA-Z0-9_]", "_" );
48
42
  return( out );
49
43
  }
44
+
45
+ string stringify( string s ) {
46
+ string sout;
47
+ sout = gsub(s, "\"", "\\\"");
48
+ sout = gsub(sout, "@", "\\@");
49
+ sout = gsub(sout, "$", "\\$");
50
+ return( sout );
51
+ }
50
52
  }
51
53
 
52
54
  BEG_G {
@@ -54,9 +56,9 @@ BEG_G {
54
56
  // Directed
55
57
  g_direct = isDirect($);
56
58
  if( g_direct == 0 ) {
57
- printf( "graph_%s = GraphViz.graph( \"%s\"", rubyfy($.name), rubyfy($.name) );
59
+ printf( "graph_%s = GraphViz.graph( \"%s\"", rubyfy($.name), stringify($.name) );
58
60
  } else {
59
- printf( "graph_%s = GraphViz.digraph( \"%s\"", rubyfy($.name), rubyfy($.name) );
61
+ printf( "graph_%s = GraphViz.digraph( \"%s\"", rubyfy($.name), stringify($.name) );
60
62
  }
61
63
  // Strict
62
64
  g_strict = isStrict($);
@@ -107,7 +109,7 @@ N {
107
109
  subgraph = nxtsubg( subgraph );
108
110
  }
109
111
 
110
- printf( " node_%s = graph_%s.add_nodes( \"%s\"", rubyfy($.name), rubyfy(ofgraph.name), $.name );
112
+ printf( " node_%s = graph_%s.add_nodes( \"%s\"", rubyfy($.name), rubyfy(ofgraph.name), stringify($.name) );
111
113
 
112
114
  // Attributs of N
113
115
  attr = fstAttr($G, "N");
@@ -136,7 +138,7 @@ E {
136
138
  subgraph = nxtsubg( subgraph );
137
139
  }
138
140
 
139
- printf( " graph_%s.add_edges( \"%s\", \"%s\"", rubyfy(ofgraph.name), $.tail.name, $.head.name );
141
+ printf( " graph_%s.add_edges( \"%s\", \"%s\"", rubyfy(ofgraph.name), stringify($.tail.name), stringify($.head.name) );
140
142
 
141
143
  // Attributs of E
142
144
  attr = fstAttr($G, "E");
@@ -155,11 +157,11 @@ E {
155
157
 
156
158
  END_G {
157
159
  printf( "}\n" );
158
- if( xOut != "_" ) {
159
- if( xOut == "-" ) {
160
- printf( "@_graph_eval = graph_%s\n", rubyfy($.name) );
161
- } else {
162
- printf( "graph_%s.output( :%s => \"%s.%s\" )\n", rubyfy($.name), xOut, gsub($F, ".*/", ""), xOut );
163
- }
164
- }
160
+ if( xOut != "_" ) {
161
+ if( xOut == "-" ) {
162
+ printf( "@_graph_eval = graph_%s\n", rubyfy($.name) );
163
+ } else {
164
+ printf( "graph_%s.output( :%s => \"%s.%s\" )\n", rubyfy($.name), xOut, gsub($F, ".*/", ""), xOut );
165
+ }
166
+ }
165
167
  }
@@ -40,7 +40,7 @@
40
40
  # C => cluster
41
41
  #
42
42
  module Constants
43
- RGV_VERSION = "1.0.5"
43
+ RGV_VERSION = "1.0.6"
44
44
 
45
45
  ## Const: Output formats
46
46
  FORMATS = [
@@ -19,6 +19,9 @@ require 'graphviz'
19
19
  require 'rexml/document'
20
20
 
21
21
  class GraphViz
22
+ class GraphMLError < RuntimeError
23
+ end
24
+
22
25
  class GraphML
23
26
  attr_reader :attributes
24
27
  def attributs
@@ -30,10 +33,14 @@ class GraphViz
30
33
  attr_accessor :graph
31
34
 
32
35
  DEST = {
33
- 'node' => [:nodes],
34
- 'edge' => [:edges],
35
- 'graph' => [:graphs],
36
- 'all' => [:nodes, :edges, :graphs]
36
+ 'node' => [:nodes],
37
+ 'edge' => [:edges],
38
+ 'graph' => [:graphs],
39
+ 'graphml' => [:graphml],
40
+ 'hyperedge' => [:hyperedge],
41
+ 'port' => [:port],
42
+ 'endpoint' => [:endpoint],
43
+ 'all' => [:nodes, :edges, :graphs, :graphml, :hyperedge, :port, :endpoint]
37
44
  }
38
45
 
39
46
  GTYPE = {
@@ -48,8 +55,13 @@ class GraphViz
48
55
  @attributes = {
49
56
  :nodes => {},
50
57
  :edges => {},
51
- :graphs => {}
58
+ :graphs => {},
59
+ :graphml => {},
60
+ :endpoint => {},
61
+ :port => {},
62
+ :hyperedge => {}
52
63
  }
64
+ @ignored_keys = []
53
65
  @graph = nil
54
66
  @current_attr = nil
55
67
  @current_node = nil
@@ -60,22 +72,22 @@ class GraphViz
60
72
  end
61
73
 
62
74
  def parse( node ) #:nodoc:
63
- #begin
64
- send( node.name.to_sym, node )
65
- #rescue NoMethodError => e
66
- # raise "ERROR node #{node.name} can be root"
67
- #end
75
+ send( node.name.to_sym, node )
68
76
  end
69
77
 
70
78
  def graphml( node ) #:nodoc:
71
79
  node.each_element( ) do |child|
72
- #begin
80
+ begin
73
81
  send( "graphml_#{child.name}".to_sym, child )
74
- #rescue NoMethodError => e
75
- # raise "ERROR node #{child.name} can be child of graphml"
76
- #end
82
+ rescue NoMethodError => e
83
+ raise GraphMLError, "node #{child.name} can be child of graphml"
84
+ end
77
85
  end
78
86
  end
87
+
88
+ def graphml_data(node)
89
+ warn "graphml/data not supported!"
90
+ end
79
91
 
80
92
  def graphml_key( node ) #:nodoc:
81
93
  id = node.attributes['id']
@@ -83,15 +95,19 @@ class GraphViz
83
95
  :name => node.attributes['attr.name'],
84
96
  :type => node.attributes['attr.type']
85
97
  }
86
- DEST[node.attributes['for']].each do |d|
87
- @attributes[d][id] = @current_attr
88
- end
89
-
90
- node.each_element( ) do |child|
91
- begin
92
- send( "graphml_key_#{child.name}".to_sym, child )
93
- rescue NoMethodError => e
94
- raise "ERROR node #{child.name} can be child of graphml"
98
+ if @current_attr[:name].nil?
99
+ @ignored_keys << id
100
+ else
101
+ DEST[node.attributes['for']].each do |d|
102
+ @attributes[d][id] = @current_attr
103
+ end
104
+
105
+ node.each_element( ) do |child|
106
+ begin
107
+ send( "graphml_key_#{child.name}".to_sym, child )
108
+ rescue NoMethodError => e
109
+ raise GraphMLError, "node #{child.name} can be child of key"
110
+ end
95
111
  end
96
112
  end
97
113
 
@@ -99,7 +115,7 @@ class GraphViz
99
115
  end
100
116
 
101
117
  def graphml_key_default( node ) #:nodoc:
102
- @current_attr[:default] = node.texts().to_s
118
+ @current_attr[:default] = node.texts().join('\n')
103
119
  end
104
120
 
105
121
  def graphml_graph( node ) #:nodoc:
@@ -115,28 +131,40 @@ class GraphViz
115
131
  end
116
132
 
117
133
  @attributes[:graphs].each do |id, data|
118
- @current_graph.graph[data[:name]] = data[:default] if data.has_key?(:default)
134
+ begin
135
+ @current_graph.graph[data[:name]] = data[:default] if data.has_key?(:default)
136
+ rescue ArgumentError => e
137
+ warn e
138
+ end
119
139
  end
120
140
  @attributes[:nodes].each do |id, data|
121
- @current_graph.node[data[:name]] = data[:default] if data.has_key?(:default)
141
+ begin
142
+ @current_graph.node[data[:name]] = data[:default] if data.has_key?(:default)
143
+ rescue ArgumentError => e
144
+ warn e
145
+ end
122
146
  end
123
147
  @attributes[:edges].each do |id, data|
124
- @current_graph.edge[data[:name]] = data[:default] if data.has_key?(:default)
148
+ begin
149
+ @current_graph.edge[data[:name]] = data[:default] if data.has_key?(:default)
150
+ rescue ArgumentError => e
151
+ warn e
152
+ end
125
153
  end
126
154
 
127
155
  node.each_element( ) do |child|
128
- #begin
129
- send( "graphml_graph_#{child.name}".to_sym, child )
130
- #rescue NoMethodError => e
131
- # raise "ERROR node #{child.name} can be child of graphml"
132
- #end
156
+ send( "graphml_graph_#{child.name}".to_sym, child )
133
157
  end
134
158
 
135
159
  @current_graph = previous_graph
136
160
  end
137
161
 
138
162
  def graphml_graph_data( node ) #:nodoc:
139
- @current_graph[@attributes[:graphs][node.attributes['key']][:name]] = node.texts().to_s
163
+ begin
164
+ @current_graph[@attributes[:graphs][node.attributes['key']][:name]] = node.texts().join('\n')
165
+ rescue ArgumentError => e
166
+ warn e
167
+ end
140
168
  end
141
169
 
142
170
  def graphml_graph_node( node ) #:nodoc:
@@ -150,7 +178,7 @@ class GraphViz
150
178
  begin
151
179
  send( "graphml_graph_node_#{child.name}".to_sym, child )
152
180
  rescue NoMethodError => e
153
- raise "ERROR node #{child.name} can be child of graphml"
181
+ raise GraphMLError, "node #{child.name} can be child of node"
154
182
  end
155
183
  end
156
184
  end
@@ -158,7 +186,11 @@ class GraphViz
158
186
  unless @current_node.nil?
159
187
  node = @current_graph.add_nodes( node.attributes['id'] )
160
188
  @current_node.each do |k, v|
161
- node[k] = v
189
+ begin
190
+ node[k] = v
191
+ rescue ArgumentError => e
192
+ warn e
193
+ end
162
194
  end
163
195
  end
164
196
 
@@ -166,8 +198,12 @@ class GraphViz
166
198
  end
167
199
 
168
200
  def graphml_graph_node_data( node ) #:nodoc:
169
- #@current_node[@attributes[:nodes][node.attributes['key']][:name]] = node.texts().to_s
170
- @current_node[@attributes[:nodes][node.attributes['key']][:name]] = node.texts().join(sep='\n',)
201
+ return if @ignored_keys.include?(node.attributes['key'])
202
+ begin
203
+ @current_node[@attributes[:nodes][node.attributes['key']][:name]] = node.texts().join('\n')
204
+ rescue ArgumentError => e
205
+ warn e
206
+ end
171
207
  end
172
208
 
173
209
  def graphml_graph_node_port( node ) #:nodoc:
@@ -190,18 +226,23 @@ class GraphViz
190
226
  @current_edge = @current_graph.add_edges( source, target )
191
227
 
192
228
  node.each_element( ) do |child|
193
- #begin
229
+ begin
194
230
  send( "graphml_graph_edge_#{child.name}".to_sym, child )
195
- #rescue NoMethodError => e
196
- # raise "ERROR node #{child.name} can be child of graphml"
197
- #end
231
+ rescue NoMethodError => e
232
+ raise GraphMLError, "node #{child.name} can be child of edge"
233
+ end
198
234
  end
199
235
 
200
236
  @current_edge = nil
201
237
  end
202
238
 
203
239
  def graphml_graph_edge_data( node ) #:nodoc:
204
- @current_edge[@attributes[:edges][node.attributes['key']][:name]] = node.texts().to_s
240
+ return if @ignored_keys.include?(node.attributes['key'])
241
+ begin
242
+ @current_edge[@attributes[:edges][node.attributes['key']][:name]] = node.texts().join('\n')
243
+ rescue ArgumentError => e
244
+ warn e
245
+ end
205
246
  end
206
247
 
207
248
  def graphml_graph_hyperedge( node ) #:nodoc:
@@ -8,7 +8,14 @@
8
8
  # testing, lots of gradients)
9
9
 
10
10
  require 'rubygems'
11
- require 'xml/xslt'
11
+ begin
12
+ require 'xml/xslt'
13
+ XSLT_METHOD = :xml_xslt_transform
14
+ rescue LoadError => e
15
+ require 'libxml'
16
+ require 'libxslt'
17
+ XSLT_METHOD = :libxslt_transform
18
+ end
12
19
 
13
20
  class GraphViz
14
21
  # Transform to pretty up the SVG output
@@ -24,11 +31,8 @@ class GraphViz
24
31
  #
25
32
  # GraphViz.nothugly( "myGraph.svg" )
26
33
  def self.nothugly( file, save = true )
27
- xslt = XML::XSLT.new()
28
- xslt.xml = file
29
- xslt.xsl = File.join( File.dirname(File.expand_path(__FILE__)), "nothugly", "nothugly.xsl" )
30
-
31
- out = xslt.serve()
34
+ xsl = File.join( File.dirname(File.expand_path(__FILE__)), "nothugly", "nothugly.xsl" )
35
+ out = self.send(XSLT_METHOD, file, xsl)
32
36
 
33
37
  if save
34
38
  fname = File.join( File.dirname(File.expand_path(file)), File.basename(file))
@@ -39,4 +43,21 @@ class GraphViz
39
43
  return out
40
44
  end
41
45
  end
42
- end
46
+
47
+ def self.xml_xslt_transform(xml, xsl)
48
+ xslt = XML::XSLT.new()
49
+ xslt.xml = xml
50
+ xslt.xsl = xsl
51
+ xslt.serve()
52
+ end
53
+
54
+ def self.libxslt_transform(xml, xsl)
55
+ LibXML::XML.default_load_external_dtd = false
56
+ LibXML::XML.default_substitute_entities = false
57
+
58
+ stylesheet_doc = LibXML::XML::Document.file(xsl)
59
+ stylesheet = LibXSLT::XSLT::Stylesheet.new(stylesheet_doc)
60
+ xml_doc = LibXML::XML::Document.file(xml)
61
+ stylesheet.apply(xml_doc).to_s
62
+ end
63
+ end
@@ -24,21 +24,21 @@ class GraphViz
24
24
  if g.is_a?(Fixnum)
25
25
  g = g.to_s.convert_base(10, 16)
26
26
  end
27
- unless g.is_a?(String) and HEX_FOR_COLOR.match(r)
27
+ unless g.is_a?(String) and HEX_FOR_COLOR.match(g)
28
28
  raise ColorException, "Bad green value"
29
29
  end
30
30
 
31
31
  if b.is_a?(Fixnum)
32
32
  b = b.to_s.convert_base(10, 16)
33
33
  end
34
- unless b.is_a?(String) and HEX_FOR_COLOR.match(r)
34
+ unless b.is_a?(String) and HEX_FOR_COLOR.match(b)
35
35
  raise ColorException, "Bad blue value"
36
36
  end
37
37
 
38
38
  if a.is_a?(Fixnum)
39
39
  a = a.to_s.convert_base(10, 16)
40
40
  end
41
- unless a.nil? or (a.is_a?(String) and HEX_FOR_COLOR.match(r))
41
+ unless a.nil? or (a.is_a?(String) and HEX_FOR_COLOR.match(a))
42
42
  raise ColorException, "Bad alpha value"
43
43
  end
44
44
 
data/lib/graphviz.rb CHANGED
@@ -550,7 +550,7 @@ class GraphViz
550
550
  require 'graphviz/nothugly'
551
551
  @nothugly = true
552
552
  rescue LoadError => e
553
- warn "You must install ruby-xslt to use nothugly option!"
553
+ warn "You must install ruby-xslt or libxslt-ruby to use nothugly option!"
554
554
  @nothugly = false
555
555
  end
556
556
  else
@@ -975,7 +975,7 @@ class GraphViz
975
975
 
976
976
  if (options[:force] or str.match( /\A[a-zA-Z_]+[a-zA-Z0-9_]*\Z/ ).nil?)
977
977
  unless options[:unquote_empty] == true and str.size == 0
978
- '"' + str.gsub('"', '\\"').gsub("\n", '\\\\n').gsub(".","\\.") + '"'
978
+ '"' + str.gsub('"', '\\"').gsub("\n", '\\\\n') + '"'
979
979
  end
980
980
  else
981
981
  str
@@ -0,0 +1 @@
1
+ require 'graphviz'
metadata CHANGED
@@ -1,80 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby-graphviz
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.6
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 5
10
- version: 1.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Gregoire Lejeune
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-06 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: gems
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
38
25
  none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: gems
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
46
38
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: rdoc
50
39
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
52
41
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rdoc
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
60
54
  type: :development
61
- version_requirements: *id003
62
- description: Ruby/Graphviz provides an interface to layout and generate images of directed graphs in a variety of formats (PostScript, PNG, etc.) using GraphViz.
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Ruby/Graphviz provides an interface to layout and generate images of
63
+ directed graphs in a variety of formats (PostScript, PNG, etc.) using GraphViz.
63
64
  email: gregoire.lejeune@free.fr
64
- executables:
65
+ executables:
65
66
  - dot2ruby
66
67
  - gem2gv
67
68
  - git2gv
68
69
  - ruby2gv
69
70
  - xml2gv
70
71
  extensions: []
71
-
72
- extra_rdoc_files:
72
+ extra_rdoc_files:
73
73
  - README.rdoc
74
74
  - COPYING.rdoc
75
75
  - AUTHORS.rdoc
76
76
  - CHANGELOG.rdoc
77
- files:
77
+ files:
78
78
  - .gemrc
79
79
  - .gitignore
80
80
  - .travis.yml
@@ -113,11 +113,14 @@ files:
113
113
  - examples/graphml/attributes.ext.graphml
114
114
  - examples/graphml/attributes.graphml
115
115
  - examples/graphml/cluster.graphml
116
+ - examples/graphml/failed_graph.graphml
116
117
  - examples/graphml/hyper.graphml
117
118
  - examples/graphml/nested.graphml
118
119
  - examples/graphml/port.graphml
119
120
  - examples/graphml/simple.graphml
120
121
  - examples/hello.png
122
+ - examples/rgv/rgv.ps
123
+ - examples/rgv/test_rgv.rb
121
124
  - examples/sample01.rb
122
125
  - examples/sample02.rb
123
126
  - examples/sample03.rb
@@ -229,6 +232,7 @@ files:
229
232
  - lib/graphviz/utils.rb
230
233
  - lib/graphviz/utils/colors.rb
231
234
  - lib/graphviz/xml.rb
235
+ - lib/ruby-graphviz.rb
232
236
  - ruby-graphviz.gemspec
233
237
  - setup.rb
234
238
  - test/support.rb
@@ -240,54 +244,42 @@ files:
240
244
  - test/test_utils_colors.rb
241
245
  homepage: http://github.com/glejeune/Ruby-Graphviz
242
246
  licenses: []
243
-
244
- post_install_message: "\n\
245
- Since version 0.9.2, Ruby/GraphViz can use Open3.popen3 (or not)\n\
246
- On Windows, you can install 'win32-open3'\n\n\
247
- You need to install GraphViz (http://graphviz.org/) to use this Gem.\n\n\
248
- For more information about Ruby-Graphviz :\n\
249
- * Doc : http://rdoc.info/projects/glejeune/Ruby-Graphviz\n\
250
- * Sources : http://github.com/glejeune/Ruby-Graphviz\n\
251
- * NEW - Mailing List : http://groups.google.com/group/ruby-graphviz\n\n\
252
- Last (important) changes :\n\
253
- * GraphViz#add_edge is deprecated, use GraphViz#add_edges\n\
254
- * GraphViz#add_node is deprecated, use GraphViz#add_nodes\n\
255
- * GraphViz::Edge#each_attribut is deprecated, use GraphViz::Edge#each_attribute\n\
256
- * GraphViz::GraphML#attributs is deprecated, use GraphViz::GraphML#attributes\n\
257
- * GraphViz::Node#each_attribut is deprecated, use GraphViz::Node#each_attribute\n "
258
- rdoc_options:
247
+ post_install_message: ! "\nSince version 0.9.2, Ruby/GraphViz can use Open3.popen3
248
+ (or not)\nOn Windows, you can install 'win32-open3'\n\nYou need to install GraphViz
249
+ (http://graphviz.org/) to use this Gem.\n\nFor more information about Ruby-Graphviz
250
+ :\n* Doc : http://rdoc.info/projects/glejeune/Ruby-Graphviz\n* Sources : http://github.com/glejeune/Ruby-Graphviz\n*
251
+ NEW - Mailing List : http://groups.google.com/group/ruby-graphviz\n\nLast (important)
252
+ changes :\n* GraphViz#add_edge is deprecated, use GraphViz#add_edges\n* GraphViz#add_node
253
+ is deprecated, use GraphViz#add_nodes\n* GraphViz::Edge#each_attribut is deprecated,
254
+ use GraphViz::Edge#each_attribute\n* GraphViz::GraphML#attributs is deprecated,
255
+ use GraphViz::GraphML#attributes\n* GraphViz::Node#each_attribut is deprecated,
256
+ use GraphViz::Node#each_attribute\n "
257
+ rdoc_options:
259
258
  - --title
260
259
  - Ruby/GraphViz
261
260
  - --main
262
261
  - README.rdoc
263
- require_paths:
262
+ require_paths:
264
263
  - lib
265
- required_ruby_version: !ruby/object:Gem::Requirement
264
+ required_ruby_version: !ruby/object:Gem::Requirement
266
265
  none: false
267
- requirements:
268
- - - ">="
269
- - !ruby/object:Gem::Version
270
- hash: 3
271
- segments:
272
- - 0
273
- version: "0"
274
- required_rubygems_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ! '>='
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
275
271
  none: false
276
- requirements:
277
- - - ">="
278
- - !ruby/object:Gem::Version
279
- hash: 3
280
- segments:
281
- - 0
282
- version: "0"
272
+ requirements:
273
+ - - ! '>='
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
283
276
  requirements: []
284
-
285
277
  rubyforge_project: ruby-asp
286
- rubygems_version: 1.8.11
278
+ rubygems_version: 1.8.24
287
279
  signing_key:
288
280
  specification_version: 3
289
281
  summary: Interface to the GraphViz graphing tool
290
- test_files:
282
+ test_files:
291
283
  - test/support.rb
292
284
  - test/test_examples.rb
293
285
  - test/test_graph.rb