GraphvizR 0.2.0 → 0.3.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.
- data/History.txt +4 -0
- data/Manifest.txt +4 -0
- data/lib/graphviz_r.rb +14 -7
- data/test/test_graphviz_r.rb +24 -5
- data/vendor/plugins/rdot/config/database.yml +20 -0
- data/vendor/plugins/rdot/init.rb +3 -0
- data/vendor/plugins/rdot/lib/rdot.rb +26 -2
- data/vendor/plugins/rdot/lib/rdot_template.rb +19 -0
- data/vendor/plugins/rdot/test/rdot_test.rb +51 -3
- metadata +6 -2
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -6,11 +6,15 @@ bin/graphviz_r
|
|
6
6
|
lib/graphviz_r.rb
|
7
7
|
test/test_graphviz_r.rb
|
8
8
|
vendor/plugins/rdot
|
9
|
+
vendor/plugins/rdot/config
|
10
|
+
vendor/plugins/rdot/config/database.yml
|
9
11
|
vendor/plugins/rdot/lib
|
10
12
|
vendor/plugins/rdot/lib/rdot.rb
|
13
|
+
vendor/plugins/rdot/lib/rdot_template.rb
|
11
14
|
vendor/plugins/rdot/tasks
|
12
15
|
vendor/plugins/rdot/tasks/rdot_tasks.rake
|
13
16
|
vendor/plugins/rdot/test/rdot_test.rb
|
17
|
+
vendor/plugins/rdot/test/log
|
14
18
|
vendor/plugins/rdot/README
|
15
19
|
vendor/plugins/rdot/Rakefile
|
16
20
|
vendor/plugins/rdot/init.rb
|
data/lib/graphviz_r.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class GraphvizR
|
2
|
-
VERSION = '0.
|
2
|
+
VERSION = '0.3.0'
|
3
3
|
INDENT_UNIT = ' '
|
4
4
|
|
5
5
|
class Attributes
|
@@ -248,12 +248,19 @@ class GraphvizR
|
|
248
248
|
end
|
249
249
|
|
250
250
|
def data(format='png')
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
251
|
+
format = format.to_s
|
252
|
+
if format == 'dot'
|
253
|
+
to_dot
|
254
|
+
else
|
255
|
+
begin
|
256
|
+
gv = IO.popen "dot -q -T#{format || 'png'}", "w+"
|
257
|
+
gv.puts to_dot
|
258
|
+
gv.close_write
|
259
|
+
gv.read
|
260
|
+
ensure
|
261
|
+
gv.close
|
262
|
+
end
|
263
|
+
end
|
257
264
|
end
|
258
265
|
|
259
266
|
def output(filename=nil, format='png')
|
data/test/test_graphviz_r.rb
CHANGED
@@ -28,7 +28,7 @@ class TestGraphvizR < Test::Unit::TestCase
|
|
28
28
|
:beta => :delta,
|
29
29
|
:delta => 'size'
|
30
30
|
)
|
31
|
-
|
31
|
+
|
32
32
|
assert_equal <<-end_of_string, gvr
|
33
33
|
digraph sample {
|
34
34
|
graph [label = "example", size = "1.5, 2.5"];
|
@@ -79,7 +79,7 @@ digraph sample {
|
|
79
79
|
:node2 => [:node1, :p_center],
|
80
80
|
{:node2 => [:node1, :p_right]} => {:label => 'record'}
|
81
81
|
)
|
82
|
-
|
82
|
+
|
83
83
|
assert_equal <<-end_of_string, gvr
|
84
84
|
digraph sample {
|
85
85
|
graph [size = "1.5, 2.5"];
|
@@ -146,7 +146,7 @@ digraph sample {
|
|
146
146
|
{:c => :f} => {:lhead => :cluster1},
|
147
147
|
{:a => :f} => {:ltail => :cluster0, :lhead => :cluster1}
|
148
148
|
)
|
149
|
-
|
149
|
+
|
150
150
|
assert_equal <<-end_of_string, gvr
|
151
151
|
digraph sample {
|
152
152
|
subgraph cluster0 {
|
@@ -219,7 +219,6 @@ digraph sample {
|
|
219
219
|
(gvr.beta - gvr.delta) [:label => 'label2']
|
220
220
|
gvr.delta - gvr[:size]
|
221
221
|
|
222
|
-
#assert_equal <<-end_of_string.gsub(/\s/, ''), gvr.to_dot.gsub(/\s/, '')
|
223
222
|
assert_equal <<-end_of_string, gvr.to_dot
|
224
223
|
graph sample {
|
225
224
|
graph [label = "example", size = "1.5, 2.5"];
|
@@ -249,7 +248,6 @@ graph sample {
|
|
249
248
|
(gvr.c - gvr.d) [:ltail => :cluster0]
|
250
249
|
(gvr.c - gvr.f) [:lhead => :cluster1]
|
251
250
|
|
252
|
-
#assert_equal <<-end_of_string.gsub(/\s/, ''), gvr.to_dot.gsub(/\s/, '')
|
253
251
|
assert_equal <<-end_of_string, gvr.to_dot
|
254
252
|
graph sample {
|
255
253
|
subgraph cluster0 {
|
@@ -266,6 +264,27 @@ graph sample {
|
|
266
264
|
b -- d;
|
267
265
|
c -- d [ltail = cluster0];
|
268
266
|
c -- f [lhead = cluster1];
|
267
|
+
}
|
268
|
+
end_of_string
|
269
|
+
end
|
270
|
+
|
271
|
+
def test_data
|
272
|
+
gvr = GraphvizR.new 'sample'
|
273
|
+
gvr.graph [:label => 'example', :size => '1.5, 2.5']
|
274
|
+
gvr.beta [:shape => :box]
|
275
|
+
gvr.alpha >> gvr.beta
|
276
|
+
(gvr.alpha >> gvr.gamma) [:label => 'label1']
|
277
|
+
(gvr.beta >> gvr.delta) [:label => 'label2']
|
278
|
+
gvr.delta >> gvr[:size]
|
279
|
+
|
280
|
+
assert_equal <<-end_of_string, gvr.data(:dot)
|
281
|
+
digraph sample {
|
282
|
+
graph [label = "example", size = "1.5, 2.5"];
|
283
|
+
beta [shape = box];
|
284
|
+
alpha -> beta;
|
285
|
+
alpha -> gamma [label = "label1"];
|
286
|
+
beta -> delta [label = "label2"];
|
287
|
+
delta -> size;
|
269
288
|
}
|
270
289
|
end_of_string
|
271
290
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
development:
|
2
|
+
database: hoge
|
3
|
+
adapter: mysql
|
4
|
+
username: hoge
|
5
|
+
password: root
|
6
|
+
host: localhost
|
7
|
+
|
8
|
+
test:
|
9
|
+
database: hoge
|
10
|
+
adapter: mysql
|
11
|
+
username: hoge
|
12
|
+
password: hoge
|
13
|
+
host: localhost
|
14
|
+
|
15
|
+
production:
|
16
|
+
database: hoge
|
17
|
+
adapter: mysql
|
18
|
+
username: hoge
|
19
|
+
password: hoge
|
20
|
+
host: localhost
|
data/vendor/plugins/rdot/init.rb
CHANGED
@@ -15,9 +15,33 @@ class ActionController::Base
|
|
15
15
|
def render_rdot(options=nil, &block)
|
16
16
|
options ||= {}
|
17
17
|
format = options[:format] || 'png'
|
18
|
-
content_type =
|
18
|
+
content_type =
|
19
|
+
case format
|
20
|
+
when 'svg'
|
21
|
+
'application/xml'
|
22
|
+
when 'dot'
|
23
|
+
'text/plain'
|
24
|
+
else
|
25
|
+
"image/#{format}"
|
26
|
+
end
|
19
27
|
gvr = GraphvizR.new 'generated'
|
20
|
-
|
28
|
+
if block.arity == 1
|
29
|
+
block.call gvr
|
30
|
+
else
|
31
|
+
copy_instance_variables block, gvr
|
32
|
+
gvr.instance_eval &block
|
33
|
+
end
|
21
34
|
send_data gvr.data(format), :type => content_type #,disposition => 'inline'
|
22
35
|
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def copy_instance_variables(from_block, to_obj)
|
40
|
+
block_instance_variables = eval 'instance_variables', from_block.binding
|
41
|
+
block_instance_variables.each do |name|
|
42
|
+
to_obj.instance_variable_set name.to_sym, eval(name, from_block.binding)
|
43
|
+
#to_obj.class.__send__ :attr_accessor, name[1..-1]
|
44
|
+
#to_obj.send "#{name[1..-1]}=", eval(name, from_block.binding)
|
45
|
+
end
|
46
|
+
end
|
23
47
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class RdotTemplate
|
2
|
+
def initialize(view)
|
3
|
+
@view = view
|
4
|
+
end
|
5
|
+
|
6
|
+
def render(template, local_assigns)
|
7
|
+
params = @view.assigns['params']
|
8
|
+
format = params['format'] || 'png'
|
9
|
+
content_type = params['content_type'] || "image/#{format}"
|
10
|
+
|
11
|
+
gvr = GraphvizR.new 'generated'
|
12
|
+
@view.assigns.each do |name, value|
|
13
|
+
gvr.instance_variable_set(('@' + name).to_sym, value)
|
14
|
+
end
|
15
|
+
gvr.instance_eval template
|
16
|
+
@view.controller.__send__ :send_data, gvr.data(format), :type => content_type
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -1,8 +1,56 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
1
2
|
require 'test/unit'
|
2
3
|
|
4
|
+
class RdotGenController < ActionController::Base
|
5
|
+
def call_with_gvr
|
6
|
+
local_var = 'node1_label'
|
7
|
+
|
8
|
+
render :rdot do |gvr|
|
9
|
+
gvr.graph [:size => '1.5, 2.5']
|
10
|
+
gvr.node1 [:label => local_var]
|
11
|
+
gvr.node2 [:label => 'node2_label']
|
12
|
+
gvr.node1 >> gvr.node2
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def call_with_nothing
|
17
|
+
local_var = 'node1_label'
|
18
|
+
@instance_var = 'node2_label'
|
19
|
+
|
20
|
+
render :rdot do
|
21
|
+
graph [:size => '1.5, 2.5']
|
22
|
+
node1 [:label => local_var]
|
23
|
+
node2 [:label => @instance_var]
|
24
|
+
node1 >> node2
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
3
29
|
class RdotTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
|
6
|
-
|
30
|
+
def setup
|
31
|
+
@controller = RdotGenController.new
|
32
|
+
@request = ActionController::TestRequest.new
|
33
|
+
@response = ActionController::TestResponse.new
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_call_with_gvr
|
37
|
+
get_and_assert :call_with_gvr
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_call_with_nothing
|
41
|
+
get_and_assert :call_with_nothing
|
42
|
+
end
|
43
|
+
|
44
|
+
def get_and_assert(action)
|
45
|
+
get action, :format => 'dot'
|
46
|
+
assert_response :success
|
47
|
+
assert <<-end_of_string, @response.body
|
48
|
+
generated {
|
49
|
+
graph [];
|
50
|
+
node1 [label = 'node1_label'];
|
51
|
+
node2 [label = 'node2_label'];
|
52
|
+
node1 -> node2;
|
53
|
+
}
|
54
|
+
end_of_string
|
7
55
|
end
|
8
56
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: GraphvizR
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-02-
|
6
|
+
version: 0.3.0
|
7
|
+
date: 2007-02-16 00:00:00 +09:00
|
8
8
|
summary: The author was too lazy to write a summary
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -38,11 +38,15 @@ files:
|
|
38
38
|
- lib/graphviz_r.rb
|
39
39
|
- test/test_graphviz_r.rb
|
40
40
|
- vendor/plugins/rdot
|
41
|
+
- vendor/plugins/rdot/config
|
42
|
+
- vendor/plugins/rdot/config/database.yml
|
41
43
|
- vendor/plugins/rdot/lib
|
42
44
|
- vendor/plugins/rdot/lib/rdot.rb
|
45
|
+
- vendor/plugins/rdot/lib/rdot_template.rb
|
43
46
|
- vendor/plugins/rdot/tasks
|
44
47
|
- vendor/plugins/rdot/tasks/rdot_tasks.rake
|
45
48
|
- vendor/plugins/rdot/test/rdot_test.rb
|
49
|
+
- vendor/plugins/rdot/test/log
|
46
50
|
- vendor/plugins/rdot/README
|
47
51
|
- vendor/plugins/rdot/Rakefile
|
48
52
|
- vendor/plugins/rdot/init.rb
|