Sha256: f8d50a6335f3d65e558f2ccc9c5c20de142507d288481ec9584fdc6383964306
Contents?: true
Size: 916 Bytes
Versions: 1
Compression:
Stored size: 916 Bytes
Contents
module Rambling class TrieNode include ChildrenHashDeferer include TrieCompressor include TrieBranches attr_reader :letter, :children, :parent def initialize(word, parent = nil) @letter = nil @parent = parent @is_terminal = false @children = {} unless word.nil? or word.empty? letter = word.slice!(0) @letter = letter.to_sym unless letter.nil? @is_terminal = word.empty? add_branch_from(word) end end def terminal=(terminal) @is_terminal = terminal end def terminal? @is_terminal end def as_word raise InvalidTrieOperation.new() unless @letter.nil? or terminal? get_letter_string end protected def get_letter_string (@parent.nil? ? '' : @parent.get_letter_string) + @letter.to_s end def parent=(parent) @parent = parent end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rambling-trie-0.3.2 | ./lib/trie_node.rb |