Class: ValidationProfiler::Manager
- Inherits:
-
Object
- Object
- ValidationProfiler::Manager
- Defined in:
- lib/validation_profiler/manager.rb
Instance Method Summary collapse
-
#validate(obj, profile, parent = nil) ⇒ ValidationManagerResult
Called to validate an object against a validation profile.
Instance Method Details
#validate(obj, profile, parent = nil) ⇒ ValidationManagerResult
Called to validate an object against a validation profile.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/validation_profiler/manager.rb', line 9 def validate(obj, profile, parent = nil) result = ValidationProfiler::ManagerResult.new validation_rules = profile.class_variable_get(:@@validation_rules) validation_rules.each do |r| if ValidationProfiler::Rules::Manager.instance.nil? ValidationProfiler::Rules::Manager.new end rule = ValidationProfiler::Rules::Manager.instance.get_rule(r[:name]) outcome = rule.validate(obj, r[:field], r[:attributes], parent) if outcome.is_a?(Array) result.errors += outcome.map(&:errors).flatten elsif outcome.is_a?(ValidationProfiler::ManagerResult) && !outcome.outcome result.errors += outcome.errors elsif !outcome result.errors.push(field: r[:field], message: rule.(r[:field], r[:attributes], parent)) end end result.outcome = result.errors.empty? result end |