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