Added simplecov
[erd-marker.git] / lib / erd_handler / link.rb
1 module ErdHandler
2 class Link < Edge
3 def initialize(link_element = nil, vertices = nil)
4 super()
5 read(link_element, vertices) unless link_element.nil?
6 self
7 end
8
9 def read(link_element, vertices)
10 self.id = link_element.attributes["id"].to_i
11 self.mark = link_element.attributes["mark"].to_f
12 self.name = Label.new link_element.elements['moveableName'].attributes['name']
13 box1 = vertices.select {|v| v.id == link_element.elements['box1'].attributes['id'].to_i}[0]
14 box2 = vertices.select {|v| v.id == link_element.elements['box2'].attributes['id'].to_i}[0]
15 self << box1 << box2
16 box1.edges << self
17 box2.edges << self unless box1 == box2
18 if box1 == box2
19 c1 = self.connections[0]
20 c2 = self.connections[1]
21 else
22 c1 = self.connections.find {|c| c.end == box1}
23 c2 = self.connections.find {|c| c.end == box2}
24 end
25 c1.blob = link_element.elements['box1EndAdornments'].attributes['blob'].downcase.intern
26 c1.crowsfoot = link_element.elements['box1EndAdornments'].attributes['crowsfoot'].downcase.intern
27 c2.blob = link_element.elements['box2EndAdornments'].attributes['blob'].downcase.intern
28 c2.crowsfoot = link_element.elements['box2EndAdornments'].attributes['crowsfoot'].downcase.intern
29 end
30
31 end
32 end