class Ivar::Policy
Base class for all ivar checking policies
def find_closest_match(ivar, known_ivars)
-
(Symbol, nil)
- The closest match or nil if none found
Parameters:
-
known_ivars
(Array
) -- List of known variables -
ivar
(Symbol
) -- The variable to find a match for
def find_closest_match(ivar, known_ivars) finder = DidYouMean::SpellChecker.new(dictionary: known_ivars) suggestions = finder.correct(ivar.to_s) suggestions.first&.to_sym if suggestions.any? end
def format_warning(ref, suggestion)
-
(String)
- Formatted warning message
Parameters:
-
suggestion
(Symbol, nil
) -- Suggested correction or nil -
ref
(Hash
) -- Reference to an unknown instance variable
def format_warning(ref, suggestion) ivar = ref[:name] suggestion_text = suggestion ? "Did you mean: #{suggestion}?" : "" "#{ref[:path]}:#{ref[:line]}: warning: unknown instance variable #{ivar}. #{suggestion_text}\n" end
def handle_unknown_ivars(unknown_refs, klass, allowed_ivars)
-
allowed_ivars
(Array
) -- List of allowed instance variables -
klass
(Class
) -- The class being checked -
unknown_refs
(Array
) -- References to unknown instance variables
def handle_unknown_ivars(unknown_refs, klass, allowed_ivars) raise NotImplementedError, "Subclasses must implement handle_unknown_ivars" end