diff --git a/Gemfile b/Gemfile index 4af34bc8b..aebbcdae4 100644 --- a/Gemfile +++ b/Gemfile @@ -45,6 +45,7 @@ gem 'retriable' gem 'redis' gem 'request_store' gem 'builder' +gem 'did_you_mean' gem 'term-ansicolor', require: "term/ansicolor" # needed for looser jpeg header compat diff --git a/Gemfile.lock b/Gemfile.lock index 318c4ee05..fab069337 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,6 +124,7 @@ GEM delayed_job_active_record (4.1.3) activerecord (>= 3.0, < 5.3) delayed_job (>= 3.0, < 5) + did_you_mean (1.3.0) diff-lcs (1.3) docile (1.3.2) domain_name (0.5.20190701) @@ -462,6 +463,7 @@ DEPENDENCIES dalli delayed_job delayed_job_active_record + did_you_mean diff-lcs dotenv-rails dtext_rb! diff --git a/app/logical/set_diff.rb b/app/logical/set_diff.rb index b88b1fc9c..f04f0e05a 100644 --- a/app/logical/set_diff.rb +++ b/app/logical/set_diff.rb @@ -27,7 +27,7 @@ class SetDiff end def find_similar(string, candidates, max_dissimilarity: 0.70) - distance = ->(other) { DidYouMean::Levenshtein.distance(string, other) } + distance = ->(other) { ::DidYouMean::Levenshtein.distance(string, other) } max_distance = string.size * max_dissimilarity candidates.select { |candidate| distance[candidate] <= max_distance }.sort_by(&distance).first