Skip to content

Instantly share code, notes, and snippets.

@DiegoSalazar
Last active January 2, 2016 03:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DiegoSalazar/8245411 to your computer and use it in GitHub Desktop.
Save DiegoSalazar/8245411 to your computer and use it in GitHub Desktop.
string likeness test using Levenshtein distance
# install the levenshtein gem first with:
# sudo gem install levenshtein-ffi
require 'levenshtein'
def names_are_close?(s1, s2, tolerance = 1)
Levenshtein.distance(s1, s2) == tolerance
end
name_pairs = [
['james', 'jimes'],
['Worthington', 'Worthintgon'],
['Diego', 'Deigo'],
['Tobias', 'Tiboas'],
['Eduardo', 'Edward'],
['Brian', 'Burton']
]
name_pairs.each do |names|
print "Testing #{names.inspect}: "
passed = names_are_close? *names
puts "They are #{passed ? 'close' : 'not close'}\n"
end
puts "Done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment