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