class Ivar::Policy

Base class for all ivar checking policies

def find_closest_match(ivar, known_ivars)

Returns:
  • (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)

Returns:
  • (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)

Parameters:
  • 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