module Tangle::BaseGraphProtected
Protected methods of BaseGraph
Protected Instance Methods
copy_vertices_and_edges(from)
click to toggle source
# File lib/tangle/base_graph_protected.rb, line 10 def copy_vertices_and_edges(from) @vertices = from.instance_variable_get(:@vertices).dup @vertices_by_name = from.instance_variable_get(:@vertices_by_name).dup @edges = from.instance_variable_get(:@edges).dup end
delete_edge(edge)
click to toggle source
# File lib/tangle/base_graph_protected.rb, line 45 def delete_edge(edge) edge.each_vertex { |vertex| @vertices.fetch(vertex).delete(edge) } @edges.delete(edge) end
delete_vertex(vertex)
click to toggle source
# File lib/tangle/base_graph_protected.rb, line 30 def delete_vertex(vertex) @vertices[vertex].each do |edge| delete_edge(edge) if edge.include?(vertex) end @vertices.delete(vertex) @vertices_by_name.delete_if { |_, vtx| vtx.eql?(vertex) } end
insert_edge(edge)
click to toggle source
Insert a prepared edge into the graph
# File lib/tangle/base_graph_protected.rb, line 40 def insert_edge(edge) @edges << edge edge.each_vertex { |vertex| @vertices.fetch(vertex) << edge } end
insert_vertex(vertex, name = nil)
click to toggle source
# File lib/tangle/base_graph_protected.rb, line 25 def insert_vertex(vertex, name = nil) @vertices[vertex] = Set[] @vertices_by_name[name] = vertex unless name.nil? end
select_vertices!(selected = nil) { |vertex| ... }
click to toggle source
# File lib/tangle/base_graph_protected.rb, line 16 def select_vertices!(selected = nil) vertices.each do |vertex| delete_vertex(vertex) if block_given? && !yield(vertex) next if selected.nil? delete_vertex(vertex) unless selected.any? { |vtx| vtx.eql?(vertex) } end end