class Depdump::Registry::Tree
Public Instance Methods
each_node() { |node| ... }
click to toggle source
# File lib/depdump/registry/tree.rb, line 21 def each_node return unless block_given? root.each { |node| yield node } end
find_or_create_node(namespaces, parent)
click to toggle source
# File lib/depdump/registry/tree.rb, line 11 def find_or_create_node(namespaces, parent) # TODO: could be cached rather than search everytime registered = root.detect { |node| namespaces == node.namespaces } return registered if registered Node.new(namespaces: namespaces, parent: parent).tap { |n| parent.children << n } end
resolve(partial_namespaces, entry_node)
click to toggle source
# File lib/depdump/registry/tree.rb, line 26 def resolve(partial_namespaces, entry_node) current_node = entry_node resolved_node = nil while current_node && resolved_node.nil? resolved_node = current_node.dig(partial_namespaces) current_node = current_node&.parent end resolved_node end
root()
click to toggle source
# File lib/depdump/registry/tree.rb, line 4 def root @root ||= Node.new( namespaces: [], parent: nil, ) end