class DidYouMean::MethodNameChecker
Constants
- NAMES_TO_EXCLUDE
- RB_RESERVED_WORDS
MethodNameChecker::RB_RESERVED_WORDS
is the list of reserved words in Ruby that take an argument. UnlikeVariableNameChecker::RB_RESERVED_WORDS
, these reserved words require an argument, and aNoMethodError
is raised due to the presence of the argument.The
MethodNameChecker
will use this list to suggest a reversed word if aNoMethodError
is raised and found closest matches.Also see
VariableNameChecker::RB_RESERVED_WORDS
.
Attributes
method_name[R]
receiver[R]
Public Class Methods
new(exception)
click to toggle source
# File did_you_mean/spell_checkers/method_name_checker.rb, line 39 def initialize(exception) @method_name = exception.name @receiver = exception.receiver @private_call = exception.respond_to?(:private_call?) ? exception.private_call? : false end
Public Instance Methods
corrections()
click to toggle source
# File did_you_mean/spell_checkers/method_name_checker.rb, line 45 def corrections @corrections ||= SpellChecker.new(dictionary: RB_RESERVED_WORDS + method_names).correct(method_name) - names_to_exclude end
method_names()
click to toggle source
# File did_you_mean/spell_checkers/method_name_checker.rb, line 49 def method_names if Object === receiver method_names = receiver.methods + receiver.singleton_methods method_names += receiver.private_methods if @private_call method_names.uniq! method_names else [] end end
names_to_exclude()
click to toggle source
# File did_you_mean/spell_checkers/method_name_checker.rb, line 60 def names_to_exclude Object === receiver ? NAMES_TO_EXCLUDE[receiver.class] : [] end