module InciScore::Recognizer::Rules::Levenshtein
Constants
- Result
Public Instance Methods
call(src, catalog)
click to toggle source
# File lib/inci_score/recognizer_rules.rb, line 26 def call(src, catalog) return if src.empty? size = src.size farthest = Result.new(nil, size) initial = src[0] result = catalog.reduce(farthest) do |nearest, (component, _)| next nearest unless component.start_with?(initial) next nearest if component.size > (size + TOLERANCE) d = src.distance(component) nearest = Result.new(component, d) if d < nearest.distance nearest end result.name if result.tolerable?(size) end