class Szenario
Attributes
nodes[RW]
relations[RW]
title[RW]
type[RW]
Public Class Methods
new(line = '')
click to toggle source
# File lib/vispan/szenario.rb, line 6 def initialize(line = '') @title = line.gsub(/--/, '').strip @relations = [] @nodes = [] @type = 'szenario' end
Public Instance Methods
add_nodes(nodes_array)
click to toggle source
# File lib/vispan/szenario.rb, line 32 def add_nodes(nodes_array) nodes_array = nodes_array.flatten nodes_array.map {|node| @nodes << node if is_not_saved(node, @nodes)} end
add_relation(relation)
click to toggle source
# File lib/vispan/szenario.rb, line 26 def add_relation(relation) add_nodes([relation.start, relation.stop, relation.helper, relation.effects]) replace_with_existing_nodes(relation, @nodes) @relations << relation end
assign_ranks()
click to toggle source
# File lib/vispan/szenario.rb, line 50 def assign_ranks rank = @relations.map {|relation| if relation.start.rank == 0 relation.start.rank = 1 relation.stop.rank = 2 unless relation.stop.rank > 0 elsif relation.stop.rank == 0 relation.stop.rank = relation.start.rank + 1 end } end
build_szenario(index)
click to toggle source
# File lib/vispan/szenario.rb, line 13 def build_szenario(index) graph = GraphWriter.new node_definitions = @nodes.map {|node| graph.write_node(node)}.join('') relation_definitions = @relations.map {|relation| graph.write_relations(relation)}.join('') effect_definitions = @relations.map {|relation| graph.write_effects(relation)}.join('') "\n\nsubgraph cluster#{index.to_s} {bgcolor=aliceblue; label=\"#{title}\";\n#{node_definitions}\n#{relation_definitions}#{effect_definitions}}" end
get_previous_helper_node(relation2)
click to toggle source
# File lib/vispan/szenario.rb, line 61 def get_previous_helper_node(relation2) @relations.each do |relation| if relation2.start.name == relation.stop.name return relation.helper.name end end end
is_not_saved(node, szenario_nodes)
click to toggle source
# File lib/vispan/szenario.rb, line 37 def is_not_saved(node, szenario_nodes) szenario_nodes.each do |szenario_node| return false if szenario_node.name == node.name end end
replace_with_existing_nodes(relation, nodes)
click to toggle source
# File lib/vispan/szenario.rb, line 43 def replace_with_existing_nodes(relation, nodes) nodes.each do |node| relation.start = node if relation.start.name == node.name relation.stop = node if relation.stop.name == node.name end end
set_title(line)
click to toggle source
# File lib/vispan/szenario.rb, line 22 def set_title(line) @title = line.gsub(/--/, '').strip end