Class: DidYouMean::VariableNameChecker
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb | 
Constant Summary
- 
    NAMES_TO_EXCLUDE =
    
 # File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 9{ 'foo' => [:fork, :for] }
- 
    RB_RESERVED_WORDS =
    # File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 26RB_RESERVED_WORDSis the list of all reserved words in Ruby. They could be declared like methods are, and a typo would cause Ruby to raise aNameErrorbecause of the way they are declared.The :VariableNameCheckerwill use this list to suggest a reversed word if aNameErroris raised and found closest matches, excluding:* {do} * {if} * {in} * {or}Also see MethodNameChecker::RB_RESERVED_WORDS. %i( BEGIN END alias and begin break case class def defined? else elsif end ensure false for module next nil not redo rescue retry return self super then true undef unless until when while yield __LINE__ __FILE__ __ENCODING__ )
Class Method Summary
- .new(exception) ⇒ VariableNameChecker constructor
Instance Attribute Summary
- #cvar_names readonly
- #ivar_names readonly
- #lvar_names readonly
- #method_names readonly
- #name readonly
Instance Method Summary
Constructor Details
    .new(exception)  ⇒ VariableNameChecker 
  
# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 68
def initialize(exception) @name = exception.name.to_s.tr("@", "") @lvar_names = exception.respond_to?(:local_variables) ? exception.local_variables : [] receiver = exception.receiver @method_names = receiver.methods + receiver.private_methods @ivar_names = receiver.instance_variables @cvar_names = receiver.class.class_variables @cvar_names += receiver.class_variables if receiver.kind_of?(Module) end
Instance Attribute Details
#cvar_names (readonly)
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 7
attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
#ivar_names (readonly)
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 7
attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
#lvar_names (readonly)
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 7
attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
#method_names (readonly)
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 7
attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
#name (readonly)
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 7
attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
Instance Method Details
#corrections
[ GitHub ]# File 'lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb', line 79
def corrections @corrections ||= SpellChecker .new(dictionary: (RB_RESERVED_WORDS + lvar_names + method_names + ivar_names + cvar_names)) .correct(name).uniq - NAMES_TO_EXCLUDE[@name] end