class DidYouMean::MethodNameChecker
Constants
- NAMES_TO_EXCLUDE
- RB_RESERVED_WORDS
-
MethodNameChecker::RB_RESERVED_WORDSist die Liste der reservierten Wörter in Ruby, die ein Argument benötigen. Im Gegensatz zuVariableNameChecker::RB_RESERVED_WORDSerfordern diese reservierten Wörter ein Argument, und aufgrund der Anwesenheit des Arguments wird einNoMethodErrorausgelöst.Der
MethodNameCheckerverwendet diese Liste, um ein umgekehrtes Wort vorzuschlagen, wenn einNoMethodErrorausgelöst wird und die ähnlichsten Übereinstimmungen gefunden werden.Siehe auch
VariableNameChecker::RB_RESERVED_WORDS.
Attribute
Öffentliche Klassenmethoden
Source
# File lib/did_you_mean/spell_checkers/method_name_checker.rb, line 42 def initialize(exception) @method_name = exception.name @receiver = exception.receiver @private_call = exception.respond_to?(:private_call?) ? exception.private_call? : false end
Öffentliche Instanzmethoden
Source
# File lib/did_you_mean/spell_checkers/method_name_checker.rb, line 48 def corrections @corrections ||= begin dictionary = method_names dictionary = RB_RESERVED_WORDS + dictionary if @private_call SpellChecker.new(dictionary: dictionary).correct(method_name) - names_to_exclude end end
Source
# File lib/did_you_mean/spell_checkers/method_name_checker.rb, line 57 def method_names if Object === receiver method_names = receiver.methods + receiver.singleton_methods method_names += receiver.private_methods if @private_call method_names.uniq! # Assume that people trying to use a writer are not interested in a reader # and vice versa if method_name.match?(/=\Z/) method_names.select! { |name| name.match?(/=\Z/) } else method_names.reject! { |name| name.match?(/=\Z/) } end method_names else [] end end
Source
# File lib/did_you_mean/spell_checkers/method_name_checker.rb, line 75 def names_to_exclude Object === receiver ? NAMES_TO_EXCLUDE[receiver.class] : [] end