Method: Runestone::WebSearch#typos

Defined in:
lib/runestone/web_search.rb

#typosObject



82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/runestone/web_search.rb', line 82

def typos
  tokens = @values.select{|t| t.is_a?(Token) && !t.negative }
  sw = Runestone::Corpus.similar_words(*tokens.map(&:value))
  q = @values.map do |t|
    if t.is_a?(Token) && sw.has_key?(t.value)
      Token.new(t.value, prefix: t.prefix, negative: t.negative, alts: sw[t.value])
    else
      t
    end
  end
  
  Runestone::WebSearch.new(q)
end