Method: NetworkX::MultiGraph#remove_edge
- Defined in:
- lib/networkx/multigraph.rb
#remove_edge(node1, node2, key = nil) ⇒ Object
Removes edge from the graph
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/networkx/multigraph.rb', line 49 def remove_edge(node1, node2, key = nil) return super(node1, node2) if key.nil? raise KeyError, "#{node1} is not a valid node." unless @nodes.has_key?(node1) raise KeyError, "#{node2} is not a valid node" unless @nodes.has_key?(node2) raise KeyError, 'The given edge is not a valid one.' unless @adj[node1].has_key?(node2) if @adj[node1][node2].none? { |_index, data| data[:key] == key } raise KeyError, 'The given edge is not a valid one' end @adj[node1][node2].delete_if { |_indx, data| data[:key] == key } @adj[node2][node1].delete_if { |_indx, data| data[:key] == key } end |