X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=lib%2Ferd_handler%2Flink.rb;h=63bfd0600182574a9a527c18c1a8c68421ac46c9;hb=7007758ddfedba0e7db623c2e6e2aba7bb420e73;hp=eec4341e50d67a74ef88c09944e94213303e5632;hpb=54fb8d2f752d1ad35d11a03bb6e1443257a472c9;p=erd-marker.git diff --git a/lib/erd_handler/link.rb b/lib/erd_handler/link.rb index eec4341..63bfd06 100644 --- a/lib/erd_handler/link.rb +++ b/lib/erd_handler/link.rb @@ -9,19 +9,24 @@ module ErdHandler def read(link_element, vertices) self.id = link_element.attributes["id"].to_i self.mark = link_element.attributes["mark"].to_f - self.name = link_element.elements['moveableName'].attributes['name'] - puts "vertices = #{vertices}" - box1 = vertices.select {|v| v.id == link_element.elements['box1'].attributes['id']}[0] - puts "found box1: #{box1}" - box2 = vertices.select {|v| v.id == link_element.elements['box2'].attributes['id']}[0] - puts "found box2: #{box2}" + self.name = Label.new link_element.elements['moveableName'].attributes['name'] + box1 = vertices.select {|v| v.id == link_element.elements['box1'].attributes['id'].to_i}[0] + box2 = vertices.select {|v| v.id == link_element.elements['box2'].attributes['id'].to_i}[0] self << box1 << box2 - c1 = self.connections.find {|c| c.end == box1} - c1.blob = link_element.elements['box1EndAdornments'].attributes['blob'] - c1.crowsfoot = link_element.elements['box1EndAdornments'].attributes['crowsfoot'] - c2 = self.connections.find {|c| c.end == box2} - c2.blob = link_element.elements['box2EndAdornments'].attributes['blob'] - c2.crowsfoot = link_element.elements['box2EndAdornments'].attributes['crowsfoot'] + box1.edges << self + box2.edges << self unless box1 == box2 + if box1 == box2 + c1 = self.connections[0] + c2 = self.connections[1] + else + c1 = self.connections.find {|c| c.end == box1} + c2 = self.connections.find {|c| c.end == box2} + end + c1.blob = link_element.elements['box1EndAdornments'].attributes['blob'].downcase.intern + c1.crowsfoot = link_element.elements['box1EndAdornments'].attributes['crowsfoot'].downcase.intern + c2.blob = link_element.elements['box2EndAdornments'].attributes['blob'].downcase.intern + c2.crowsfoot = link_element.elements['box2EndAdornments'].attributes['crowsfoot'].downcase.intern end + end end