ruby-graphviz 1.0.5 → 1.0.6
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.
- data/.gitignore +3 -0
- data/AUTHORS.rdoc +3 -0
- data/CHANGELOG.rdoc +10 -0
- data/Rakefile +1 -10
- data/examples/graphml/failed_graph.graphml +461 -0
- data/examples/rgv/rgv.ps +125 -0
- data/examples/rgv/test_rgv.rb +12 -0
- data/examples/sample43.rb +1 -1
- data/lib/ext/gvpr/dot2ruby.g +26 -24
- data/lib/graphviz/constants.rb +1 -1
- data/lib/graphviz/graphml.rb +83 -42
- data/lib/graphviz/nothugly.rb +28 -7
- data/lib/graphviz/utils/colors.rb +3 -3
- data/lib/graphviz.rb +2 -2
- data/lib/ruby-graphviz.rb +1 -0
- metadata +78 -86
@@ -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
data/lib/ext/gvpr/dot2ruby.g
CHANGED
@@ -26,27 +26,29 @@ BEGIN {
|
|
26
26
|
graph_t subgraph; graph_t pgraph;
|
27
27
|
graph_t ofgraph;
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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),
|
59
|
+
printf( "graph_%s = GraphViz.graph( \"%s\"", rubyfy($.name), stringify($.name) );
|
58
60
|
} else {
|
59
|
-
printf( "graph_%s = GraphViz.digraph( \"%s\"", 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
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
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
|
}
|
data/lib/graphviz/constants.rb
CHANGED
data/lib/graphviz/graphml.rb
CHANGED
@@ -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'
|
34
|
-
'edge'
|
35
|
-
'graph'
|
36
|
-
'
|
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
|
-
|
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
|
-
|
80
|
+
begin
|
73
81
|
send( "graphml_#{child.name}".to_sym, child )
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
-
|
87
|
-
@
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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().
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
#
|
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
|
-
|
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 "
|
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
|
-
|
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
|
-
|
170
|
-
|
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
|
-
|
229
|
+
begin
|
194
230
|
send( "graphml_graph_edge_#{child.name}".to_sym, child )
|
195
|
-
|
196
|
-
|
197
|
-
|
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
|
-
@
|
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:
|
data/lib/graphviz/nothugly.rb
CHANGED
@@ -8,7 +8,14 @@
|
|
8
8
|
# testing, lots of gradients)
|
9
9
|
|
10
10
|
require 'rubygems'
|
11
|
-
|
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
|
-
|
28
|
-
|
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
|
-
|
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(
|
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(
|
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(
|
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')
|
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
|
-
|
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
|
-
|
19
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
25
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
41
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
62
|
-
|
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
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
*
|
251
|
-
*
|
252
|
-
|
253
|
-
|
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
|
-
|
271
|
-
|
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
|
-
|
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.
|
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
|