class TwitterCldr::Utils::Trie::Node

Attributes

value[RW]

Public Class Methods

new(value = nil, children = {}) click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 133
def initialize(value = nil, children = {})
  @value    = value
  @children = children
end

Public Instance Methods

child(key) click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 138
def child(key)
  @children[key]
end
each_key_and_child(&block) click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 154
def each_key_and_child(&block)
  @children.each(&block)
end
has_children?() click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 146
def has_children?
  !@children.empty?
end
has_value?() click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 150
def has_value?
  !!value
end
keys() click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 158
def keys
  @children.keys
end
set_child(key, child) click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 142
def set_child(key, child)
  @children[key] = child
end
subtrie_hash() click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 166
def subtrie_hash
  @children.inject({}) do |memo, (key, child)|
    memo[key] = [child.value, child.subtrie_hash]
    memo
  end
end
to_trie() click to toggle source
# File lib/twitter_cldr/utils/trie.rb, line 162
def to_trie
  Trie.new(self.class.new(nil, @children)).lock
end