X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=lib%2Fgraph.njae%2Fedge.rb;h=4a1ba790d4f33570f53525cbd3f3c23660135240;hb=2f72fc8e85b5c9c8bdcf622dc3b512a3dee5060c;hp=f38a32b21e693bbf645c25bdcca159579f97dceb;hpb=7ec68a4c02bf1e55744b274fe2f19f591f357a8b;p=graph.njae.git diff --git a/lib/graph.njae/edge.rb b/lib/graph.njae/edge.rb index f38a32b..4a1ba79 100644 --- a/lib/graph.njae/edge.rb +++ b/lib/graph.njae/edge.rb @@ -10,8 +10,8 @@ module GraphNjae # Each connection is handled by a Graph::Connection object, so that each end # of the Edge can have it's own attributes. class Edge < OpenStruct - def initialize - super + def initialize(values = {}) + super(values) self.connections = [] self end @@ -20,6 +20,7 @@ module GraphNjae def <<(other) c = Connection.new c.end = other + other.edges << self unless other.edges.include? self self.connections << c self end @@ -38,8 +39,8 @@ module GraphNjae # A connection between an Edge and a Vertex.The connection can have arbitrary attributes, # treated as method names. class Connection < OpenStruct - def initialize - super + def initialize(values = {}) + super(values) self end end