Module: InciScore::Recognizer::Rules::Levenshtein
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
Instance Method Details
#call(src, catalog) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/inci_score/recognizer_rules.rb', line 26 def call(src, catalog) 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 |