Module: DidYouMean::JaroWinkler
| Relationships & Source Files | |
| Defined in: | lib/did_you_mean/jaro_winkler.rb | 
Constant Summary
- 
    THRESHOLD =
    
 # File 'lib/did_you_mean/jaro_winkler.rb', line 640.7
- 
    WEIGHT =
    
 # File 'lib/did_you_mean/jaro_winkler.rb', line 630.1
Class Method Summary
- .distance(str1, str2) mod_func
Class Method Details
.distance(str1, str2) (mod_func)
[ GitHub ]# File 'lib/did_you_mean/jaro_winkler.rb', line 68
def distance(str1, str2) jaro_distance = Jaro.distance(str1, str2) if jaro_distance > THRESHOLD codepoints2 = str2.codepoints prefix_bonus = 0 i = 0 str1.each_codepoint do |char1| char1 == codepoints2[i] && i < 4 ? prefix_bonus += 1 : break i += 1 end jaro_distance + (prefix_bonus * WEIGHT * (1 - jaro_distance)) else jaro_distance end end