Module: RuboCop::NameSimilarity
- Included in:
- Cop::Lint::UnneededCopDisableDirective, Cop::Lint::UselessAssignment, Cop::Rails::UnknownEnv
- Defined in:
- lib/rubocop/name_similarity.rb
Overview
Common functionality for finding names that are similar to a given name.
Constant Summary collapse
- MINIMUM_SIMILARITY_TO_SUGGEST =
0.9
Instance Method Summary collapse
Instance Method Details
#find_similar_name(target_name, scope) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rubocop/name_similarity.rb', line 8 def find_similar_name(target_name, scope) names = collect_variable_like_names(scope) names.delete(target_name) scores = names.each_with_object({}) do |name, hash| score = StringUtil.similarity(target_name, name) hash[name] = score if score >= MINIMUM_SIMILARITY_TO_SUGGEST end most_similar_name, _max_score = scores.max_by { |_, score| score } most_similar_name end |