123456789_123456789_123456789_123456789_123456789_

Module: RuboCop::NameSimilarity Private

Do not use. This module is for internal use only.
Relationships & Source Files
Defined in: lib/rubocop/name_similarity.rb

Overview

Common functionality for finding names that are similar to a given name.

Class Method Summary

Class Method Details

.find_similar_name(target_name, names) (mod_func)

[ GitHub ]

  
# File 'lib/rubocop/name_similarity.rb', line 9

def find_similar_name(target_name, names)
  similar_names = find_similar_names(target_name, names)

  similar_names.first
end

.find_similar_names(target_name, names) (mod_func)

[ GitHub ]

  
# File 'lib/rubocop/name_similarity.rb', line 15

def find_similar_names(target_name, names)
  # DidYouMean::SpellChecker is not available in all versions of Ruby, and
  # even on versions where it *is* available (>= 2.3), it is not always
  # required correctly. So we do a feature check first.
  # See: https://github.com/rubocop/rubocop/issues/7979
  return [] unless defined?(DidYouMean::SpellChecker)

  names = names.dup
  names.delete(target_name)

  spell_checker = DidYouMean::SpellChecker.new(dictionary: names)
  spell_checker.correct(target_name)
end