Class: Ivar::Policy
- Inherits:
-
Object
- Object
- Ivar::Policy
- Defined in:
- lib/ivar/policies.rb
Overview
Base class for all ivar checking policies
Direct Known Subclasses
LogPolicy, NonePolicy, RaisePolicy, WarnOncePolicy, WarnPolicy
Instance Method Summary collapse
-
#find_closest_match(ivar, known_ivars) ⇒ Symbol?
Find the closest match for a variable name.
-
#format_warning(ref, suggestion) ⇒ String
Format a warning message for an unknown instance variable.
-
#handle_unknown_ivars(unknown_refs, klass, allowed_ivars) ⇒ Object
Handle unknown instance variables.
Instance Method Details
#find_closest_match(ivar, known_ivars) ⇒ Symbol?
Find the closest match for a variable name
20 21 22 23 24 |
# File 'lib/ivar/policies.rb', line 20 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 |
#format_warning(ref, suggestion) ⇒ String
Format a warning message for an unknown instance variable
30 31 32 33 34 |
# File 'lib/ivar/policies.rb', line 30 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 |
#handle_unknown_ivars(unknown_refs, klass, allowed_ivars) ⇒ Object
Handle unknown instance variables
12 13 14 |
# File 'lib/ivar/policies.rb', line 12 def handle_unknown_ivars(unknown_refs, klass, allowed_ivars) raise NotImplementedError, "Subclasses must implement handle_unknown_ivars" end |