aboutsummaryrefslogtreecommitdiffstats
path: root/guides/rails_guides/levenshtein.rb
diff options
context:
space:
mode:
Diffstat (limited to 'guides/rails_guides/levenshtein.rb')
-rw-r--r--guides/rails_guides/levenshtein.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/guides/rails_guides/levenshtein.rb b/guides/rails_guides/levenshtein.rb
index 049f633258..c48af797fa 100644
--- a/guides/rails_guides/levenshtein.rb
+++ b/guides/rails_guides/levenshtein.rb
@@ -1,8 +1,12 @@
+# frozen_string_literal: true
+
module RailsGuides
module Levenshtein
- # This code is based directly on the Text gem implementation
+ # This code is based directly on the Text gem implementation.
+ # Copyright (c) 2006-2013 Paul Battley, Michael Neumann, Tim Fletcher.
+ #
# Returns a value representing the "cost" of transforming str1 into str2
- def self.distance str1, str2
+ def self.distance(str1, str2)
s = str1
t = str2
n = s.length
@@ -18,12 +22,12 @@ module RailsGuides
str2_codepoint_enumerable = str2.each_codepoint
str1.each_codepoint.with_index do |char1, i|
- e = i+1
+ e = i + 1
str2_codepoint_enumerable.with_index do |char2, j|
cost = (char1 == char2) ? 0 : 1
x = [
- d[j+1] + 1, # insertion
+ d[j + 1] + 1, # insertion
e + 1, # deletion
d[j] + cost # substitution
].min
@@ -34,7 +38,7 @@ module RailsGuides
d[m] = x
end
- return x
+ x
end
end
end