module DidYouMean::JaroWinkler - Documentation for Ruby 4.0
Description: Documentation for the DidYouMean::JaroWinkler module
Keywords: ruby,module,DidYouMean::JaroWinkler

🔍

No recent searches

# module DidYouMean::JaroWinkler

### Constants

THRESHOLD
WEIGHT

### Public Instance Methods

distance (str1, str2)
Source

    # File lib/did_you_mean/jaro_winkler.rb, line 67
    def distance(str1, str2)
      jaro_distance = Jaro.distance(str1, str2)

      if jaro_distance > THRESHOLD
        codepoints2  = str2.codepoints
        prefix_bonus = 0

        str1.each_codepoint do |char1|
          char1 == codepoints2[prefix_bonus] && prefix_bonus < 4 ? prefix_bonus += 1 : break
        end

        jaro_distance + (prefix_bonus * WEIGHT * (1 - jaro_distance))
      else
        jaro_distance
      end
    end