module Tangle::BaseGraphPrivate
Private methods of BaseGraph
Private Instance Methods
callback(receiver, method, *args)
click to toggle source
# File lib/tangle/base_graph_private.rb, line 10 def callback(receiver, method, *args) receiver.send(method, *args) if receiver.respond_to?(method) end
each_vertex_breadth_first(start_vertex, walk_method) { |vertex| ... }
click to toggle source
Yield each reachable vertex to a block, breadth first
# File lib/tangle/base_graph_private.rb, line 25 def each_vertex_breadth_first(start_vertex, walk_method) remaining = [start_vertex] remaining.each_with_object([]) do |vertex, history| history << vertex yield vertex send(walk_method, vertex).each do |other| remaining << other unless history.include?(other) end end end
initialize_edges()
click to toggle source
# File lib/tangle/base_graph_private.rb, line 20 def initialize_edges @edges = Set[] end
initialize_vertices()
click to toggle source
Initialize vertex related attributes
# File lib/tangle/base_graph_private.rb, line 15 def initialize_vertices @vertices = {} @vertices_by_name = {} end
vertex_enumerator(start_vertex, walk_method)
click to toggle source
# File lib/tangle/base_graph_private.rb, line 36 def vertex_enumerator(start_vertex, walk_method) Enumerator.new do |yielder| each_vertex_breadth_first(start_vertex, walk_method) do |vertex| yielder << vertex end end end