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.
- 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
|