Module: Ivar::Validation
- Defined in:
- lib/ivar/validation.rb
Overview
Provides validation for instance variables
Instance Method Summary collapse
-
#check_ivars(add: [], policy: nil) ⇒ Object
Checks instance variables against class analysis.
Instance Method Details
#check_ivars(add: [], policy: nil) ⇒ Object
Checks instance variables against class analysis
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/ivar/validation.rb', line 11 def check_ivars(add: [], policy: nil) policy ||= get_check_policy analyses = Ivar.get_ancestral_analyses(self.class) manifest = Ivar.get_or_create_manifest(self.class) declared_ivars = manifest.all_declarations.map(&:name) allowed_ivars = (Ivar.known_internal_ivars | instance_variables | declared_ivars | add).uniq instance_refs = analyses.flat_map(&:references) unknown_refs = instance_refs.reject { |ref| allowed_ivars.include?(ref[:name]) } policy_instance = Ivar.get_policy(policy) policy_instance.handle_unknown_ivars(unknown_refs, self.class, allowed_ivars) end |