Method: NetworkX::MultiGraph#remove_edge

Defined in:
lib/networkx/multigraph.rb

#remove_edge(node1, node2, key = nil) ⇒ Object

Removes edge from the graph

Examples:

graph.remove_edge('Noida', 'Bangalore')

Parameters:

  • node1 (Object)

    the first node of the edge

  • node2 (Object)

    the second node of the edge

Raises:

  • (KeyError)


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