Skip to content

Instantly share code, notes, and snippets.

@thagomizer
Created September 12, 2013 18:43
Show Gist options
  • Save thagomizer/6542064 to your computer and use it in GitHub Desktop.
Save thagomizer/6542064 to your computer and use it in GitHub Desktop.
Patch for graph to add deleting nodes
diff -r old/lib/graph.rb new/lib/graph.rb
--- old/lib/graph.rb
+++ new/lib/graph.rb
@@ -371,6 +371,13 @@
end
##
+ # Deletes a node from the graph
+ def delete_node node_name
+ nodes.delete(node_name)
+ nodes_order.delete(node_name)
+ end
+
+ ##
# Outputs a graphviz graph.
def to_s
@@ -583,7 +590,7 @@
self
end
- alias :"<<" :">>"
+# alias :"<<" :">>"
##
# Returns the edge between self and +dep_name+.
diff -r old/test/test_graph.rb new/test/test_graph.rb
--- old/test/test_graph.rb
+++ new/test/test_graph.rb
@@ -109,6 +109,22 @@
assert_graph graph, 'label = "blah"', '"a" -> "b"'
end
+ def test_delete_node
+ g = digraph do
+ node "a"
+ node "b"
+ end
+
+ assert_equal 2, g.nodes.length
+ assert_equal 2, g.nodes_order.length
+
+ g.delete_node("a")
+
+ assert_equal 1, g.nodes.length
+ assert_equal 1, g.nodes_order.length
+ end
+
+
def test_label_html
graph.label "<<B>blah</B>>"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment