Class: PixelFontTrieOCR::Trie

Inherits:
Object
  • Object
show all
Defined in:
lib/pixel_font_trie_ocr/trie.rb,
lib/pixel_font_trie_ocr/trie/node.rb

Defined Under Namespace

Classes: Node

Instance Method Summary collapse

Constructor Details

#initialize(char_masks = {}) ⇒ Trie

Returns a new instance of Trie.



8
9
10
# File 'lib/pixel_font_trie_ocr/trie.rb', line 8

def initialize(char_masks = {})
  insert_hash(char_masks)
end

Instance Method Details

#insert(character, columns) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/pixel_font_trie_ocr/trie.rb', line 22

def insert(character, columns)
  node = root
  columns.each do |mask|
    node.children[mask] ||= Node.new
    node = node.children[mask]
  end
  node.character ||= character
end

#insert_hash(hash) ⇒ Object



16
17
18
19
20
# File 'lib/pixel_font_trie_ocr/trie.rb', line 16

def insert_hash(hash)
  hash.each_pair do |character, columns|
    insert(character, columns)
  end
end

#parse(columns) ⇒ Object



31
32
33
34
35
# File 'lib/pixel_font_trie_ocr/trie.rb', line 31

def parse(columns)
  columns = columns.dup
  columns << 0 unless columns.last.zero?
  match(columns)
end

#rootObject



12
13
14
# File 'lib/pixel_font_trie_ocr/trie.rb', line 12

def root
  @root ||= Node.new
end