Class: MetherdMissing::LevenshteinDistance

Inherits:
Object
  • Object
show all
Defined in:
lib/metherd-missing/levenshtein_distance.rb

Instance Method Summary collapse

Constructor Details

#initialize(words) ⇒ LevenshteinDistance

Returns a new instance of LevenshteinDistance.



3
4
5
6
7
8
# File 'lib/metherd-missing/levenshtein_distance.rb', line 3

def initialize(words)
  @trie = TrieNode.new
  words.each do |word|
    @trie.insert(word)
  end
end

Instance Method Details

#search(word, maximum_distance) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/metherd-missing/levenshtein_distance.rb', line 10

def search word, maximum_distance
  current_row = (0..word.length).to_a
  results = {}
  @trie.children.keys.each do |letter|
    search_recursive(
      @trie.children[letter],
      letter,
      word,
      current_row,
      results,
      maximum_distance
    )
  end
  results
end