class Diagram
Attributes
actors[RW]
nodes[RW]
Public Class Methods
new(file=nil)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 39 def initialize(file=nil) @file=file @actors=Actors.new @nodes=Nodes.new @uses={} @extends={} @includes={} @generalises={} end
Public Instance Methods
extends(from_u,to_u)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 72 def extends(from_u,to_u) relate(@extends,from_u,to_u) end
extends_to_dot()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 101 def extends_to_dot return relations_to_dot(@extends) end
fill_nodes()
click to toggle source
fill nodes not defined by node a line
# File lib/use_case_diagram/diagram.rb, line 123 def fill_nodes fill_nodes_from(@uses) fill_nodes_from(@extends) fill_nodes_from(@includes) fill_nodes_from(@generalises) end
fill_nodes_from(hash)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 114 def fill_nodes_from(hash) hash.to_a.flatten.each do |node| if (!@nodes.find(node) && !@actors.find(node)) @nodes.add(node) end end end
generalises(from_u,to_u)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 80 def generalises(from_u,to_u) relate(@generalises,from_u,to_u) end
generalises_to_dot()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 110 def generalises_to_dot return relations_to_dot(@generalises) end
includes(from_u,to_u)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 76 def includes(from_u,to_u) relate(@includes,from_u,to_u) end
includes_to_dot()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 106 def includes_to_dot return relations_to_dot(@includes) end
inspect()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 50 def inspect puts "Actors:#{@actors.count}" puts "Nodes:#{@nodes.count}" puts "Uses:#{@uses.count}" puts "Includes:#{@includes.count}" puts "Extends:#{@extends.count}" end
relate(relation,from_u,to_u)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 59 def relate(relation,from_u,to_u) if relation[from_u].nil? relation[from_u]=[] end relation[from_u] << to_u end
relations_to_dot(relations)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 86 def relations_to_dot(relations) res='' relations.each do |from_use,to_use| to_use.each do |to_u| res += "#{from_use.to_s.dquote} -> #{to_u.to_s.dquote};\n" end end return res end
to_dot()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 131 def to_dot fill_nodes res=DIAG_TPL res=res.gsub('#ACTORS#',@actors.to_dot) res=res.gsub('#NODES#',@nodes.to_dot) res=res.gsub('#USES#',uses_to_dot) res=res.gsub('#EXTENDS#',extends_to_dot) res=res.gsub('#INCLUDES#',includes_to_dot) res=res.gsub('#GENERALISES#',generalises_to_dot) return res end
uses(from_u,to_u)
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 68 def uses(from_u,to_u) relate(@uses,from_u,to_u) end
uses_to_dot()
click to toggle source
# File lib/use_case_diagram/diagram.rb, line 97 def uses_to_dot return relations_to_dot(@uses) end