Class: LcpRuby::DynamicReferences::Validator
- Inherits:
-
Object
- Object
- LcpRuby::DynamicReferences::Validator
- Defined in:
- lib/lcp_ruby/dynamic_references/validator.rb
Overview
Boot-time validator for dynamic-reference tokens used in YAML/DSL.
Catches typos in ‘current_user.<method>` against the configured `LcpRuby.configuration.user_class`, and `record.<field>` against a known model class (when one is provided in context).
The Validator never raises — it returns ‘[errors, warnings]` so callers in `ConfigurationValidator` can append messages to their result aggregator.
Class Method Summary collapse
-
.validate_token(token, descriptor:, user_class: nil, model_class: nil) ⇒ Array(Array<String>, Array<String>)
[errors, warnings].
Class Method Details
.validate_token(token, descriptor:, user_class: nil, model_class: nil) ⇒ Array(Array<String>, Array<String>)
Returns [errors, warnings].
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/lcp_ruby/dynamic_references/validator.rb', line 20 def validate_token(token, descriptor:, user_class: nil, model_class: nil) errors = [] warnings = [] return [ errors, warnings ] unless token.is_a?(String) parsed = begin Resolver.parse(token) rescue Resolver::ParseError => e errors << "#{descriptor}: #{e.}" return [ errors, warnings ] end case parsed[:root] when "current_user" validate_user_method(parsed[:method], descriptor, user_class, errors, warnings) when "record" validate_record_field(parsed[:method], descriptor, model_class, errors, warnings) end [ errors, warnings ] end |