vispan 0.7.0 → 0.8.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.
- checksums.yaml +4 -4
- data/bin/generate +1 -1
- data/lib/vispan.rb +10 -10
- data/lib/vispan/config.rb +11 -7
- data/lib/vispan/graphwriter.rb +4 -1
- data/lib/vispan/node.rb +0 -1
- data/lib/vispan/output_console.rb +0 -2
- data/lib/vispan/output_graphic.rb +3 -8
- data/lib/vispan/relation.rb +0 -4
- data/lib/vispan/szenario.rb +0 -1
- metadata +1 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ab4cac77a347cba8000a50b246d075ec8df347d
|
4
|
+
data.tar.gz: 85ba9617355b813c1ab62b5e9d2bc35251d87ac1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2566a5fa96f66fd86988373d9e68233c067a4af5ab0ccf36e1f9a95552dadc06ee7f2ebf2a22203e6c4178d5808bdc9e0fab0dcfe7c9a5a6c35026022240297
|
7
|
+
data.tar.gz: a959b1bd4b3b418dd4ef811583417b3b91ddf23c92f8ed608cdec50869c0a5ba09ce41f6f6a768551e504adb382d408d0401caf2dae83a772a27f638f098b41a
|
data/bin/generate
CHANGED
data/lib/vispan.rb
CHANGED
@@ -3,19 +3,22 @@ require "vispan/relation.rb"
|
|
3
3
|
require "vispan/node.rb"
|
4
4
|
require "vispan/output_console.rb"
|
5
5
|
require "vispan/output_graphic.rb"
|
6
|
+
require 'fileutils'
|
6
7
|
|
7
8
|
module Vispan
|
8
|
-
attr_reader :
|
9
|
+
attr_reader :szenarios
|
9
10
|
|
10
11
|
class WebPreview
|
11
12
|
def call(env)
|
12
|
-
self.visualize(
|
13
|
-
|
13
|
+
self.visualize(@output)
|
14
|
+
file_ending = File.extname(output_file).delete(".")
|
15
|
+
[200, {"Content-Type" => "image/#{file_ending}"}, [IO.read(@output)]]
|
14
16
|
end
|
15
17
|
|
16
|
-
def initialize(
|
18
|
+
def initialize(files)
|
19
|
+
@output = files[:output]
|
17
20
|
@szenarios = []
|
18
|
-
separate_szenarios(
|
21
|
+
separate_szenarios(files[:input])
|
19
22
|
end
|
20
23
|
|
21
24
|
def separate_szenarios(input_file)
|
@@ -31,7 +34,6 @@ module Vispan
|
|
31
34
|
elsif line != "\n"
|
32
35
|
@relation_lines << line
|
33
36
|
end
|
34
|
-
|
35
37
|
end
|
36
38
|
|
37
39
|
@szenarios << @single_szenario
|
@@ -59,10 +61,8 @@ module Vispan
|
|
59
61
|
end
|
60
62
|
|
61
63
|
def visualize(output_file)
|
62
|
-
|
63
|
-
|
64
|
+
graphic = OutputGraphic.new(@szenarios, output_file)
|
65
|
+
graphic.generate
|
64
66
|
end
|
65
|
-
|
66
67
|
end
|
67
|
-
|
68
68
|
end
|
data/lib/vispan/config.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
NODE_WIDTH = 3.3
|
2
2
|
NODE_MARGIN = 0.2
|
3
3
|
|
4
|
+
GENERAL_SETTINGS = {graph:{rankdir:"LR", labeljust:"l", splines:"ortho" },
|
5
|
+
node:{color:"none", shape:"rect", style:"rounded, filled", width:"#{NODE_WIDTH}", margin:"#{NODE_MARGIN}"},
|
6
|
+
edge:{}}
|
7
|
+
|
4
8
|
SZENARIO = {szenario:{bgcolor:"mintcream:lightcyan", margin:60, fontsize:18}}
|
5
9
|
|
6
|
-
NODE = {screen:{
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
NODE = {screen:{fillcolor:"yellowgreen:lemonchiffon"},
|
11
|
+
email:{fillcolor:"grey:ghostwhite"},
|
12
|
+
pdf:{fillcolor:"gold:orange"},
|
13
|
+
command:{fillcolor:"lightblue:steelblue"}
|
14
|
+
}
|
11
15
|
RELATION = {event:{color:"red"},
|
12
|
-
|
13
|
-
|
16
|
+
link:{arrowhead:"none", arrowsize:"30"}
|
17
|
+
}
|
data/lib/vispan/graphwriter.rb
CHANGED
@@ -3,7 +3,7 @@ require "vispan/config.rb"
|
|
3
3
|
class GraphWriter
|
4
4
|
|
5
5
|
def build_string(szenarios)
|
6
|
-
"Digraph G{
|
6
|
+
"Digraph G{ #{get_general_settings}#{szenarios.map.with_index {|szenario, index| build_szenario(szenario, index)}.join("")}}"
|
7
7
|
end
|
8
8
|
|
9
9
|
def build_szenario(szenario, index)
|
@@ -31,4 +31,7 @@ class GraphWriter
|
|
31
31
|
GraphWriter.const_get(type)[element.type.to_sym].map{|attribute| "; #{attribute[0]}=\"#{attribute[1]}\""}.join("")
|
32
32
|
end
|
33
33
|
|
34
|
+
def get_general_settings
|
35
|
+
GraphWriter.const_get("GENERAL_SETTINGS").map{|attribute| "#{attribute[0]} [#{attribute[1].map{|attri| "#{attri[0]}=\"#{attri[1]}\""}.join(";")}]"}.join(";")
|
36
|
+
end
|
34
37
|
end
|
data/lib/vispan/node.rb
CHANGED
@@ -20,7 +20,6 @@ class OutputConsole
|
|
20
20
|
@text += "\n"
|
21
21
|
@text += "'#{rel.start.label}' führt zu '#{rel.stop.label}'"
|
22
22
|
done << rel.start
|
23
|
-
|
24
23
|
else
|
25
24
|
@text += " und zu '#{rel.stop.label}'"
|
26
25
|
end
|
@@ -29,5 +28,4 @@ class OutputConsole
|
|
29
28
|
@text += "\n"
|
30
29
|
end
|
31
30
|
end
|
32
|
-
|
33
31
|
end
|
@@ -17,7 +17,7 @@ class OutputGraphic
|
|
17
17
|
|
18
18
|
def build_graph
|
19
19
|
graph = GraphWriter.new()
|
20
|
-
@processed_string = graph.build_string(@szenarios)
|
20
|
+
@processed_string = graph.build_string(@szenarios.reverse)
|
21
21
|
end
|
22
22
|
|
23
23
|
def generate_processed_file(processed_string)
|
@@ -26,15 +26,10 @@ class OutputGraphic
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def generate_graph(output_file)
|
29
|
-
|
29
|
+
FileUtils.mkdir_p File.dirname(output_file)
|
30
|
+
file_ending = File.extname(output_file).delete(".")
|
30
31
|
cmd = "dot -T#{file_ending} #{@file.path} -o #{output_file}"
|
31
32
|
system(cmd)
|
32
33
|
@file.unlink
|
33
34
|
end
|
34
|
-
|
35
|
-
def check_output(output_file)
|
36
|
-
output_file = output_file.to_s
|
37
|
-
output_file.split(".")[1]
|
38
|
-
end
|
39
|
-
|
40
35
|
end
|
data/lib/vispan/relation.rb
CHANGED
@@ -26,7 +26,6 @@ class Relation
|
|
26
26
|
node_array = node_string.split(":")
|
27
27
|
type = node_array[0].strip.downcase
|
28
28
|
label = node_array[1].strip
|
29
|
-
# puts label
|
30
29
|
adjust_length(label)
|
31
30
|
Node.new(type, label, index)
|
32
31
|
end
|
@@ -40,10 +39,7 @@ class Relation
|
|
40
39
|
empty = string[limit, string.length-limit].index(" ")
|
41
40
|
string[limit+empty] = "\n"
|
42
41
|
end
|
43
|
-
|
44
42
|
}
|
45
43
|
end
|
46
|
-
|
47
44
|
end
|
48
|
-
|
49
45
|
end
|
data/lib/vispan/szenario.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vispan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Witek
|
@@ -10,26 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2018-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rack
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.1
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.0'
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 2.0.1
|
33
13
|
- !ruby/object:Gem::Dependency
|
34
14
|
name: bundler
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,4 +93,3 @@ signing_key:
|
|
113
93
|
specification_version: 4
|
114
94
|
summary: Visualize processes with simple syntax and multiple output formats
|
115
95
|
test_files: []
|
116
|
-
has_rdoc:
|