class Fib::Trie
Attributes
data[RW]
key[RW]
subnode[RW]
Public Class Methods
new(key, data, subnode={})
click to toggle source
# File lib/fib/trie.rb, line 5 def initialize key, data, subnode={} @key = key @data = data @subnode = subnode end
Public Instance Methods
add_sub(key, node)
click to toggle source
# File lib/fib/trie.rb, line 24 def add_sub key, node t = Trie.new key, node subnode[key] = t t end
dig(*node_key)
click to toggle source
# File lib/fib/trie.rb, line 11 def dig *node_key return nil unless node_key.is_a? Array if node_key.size < 1 return data end current_key = node_key.first node_key.shift subnode.has_key?(current_key) ? subnode[current_key]&.dig(*node_key) : nil end