Class: Rulix::Validator
- Inherits:
-
Object
- Object
- Rulix::Validator
- Includes:
- Registry
- Defined in:
- lib/rulix/validator.rb
Class Method Summary collapse
- .errors(dataset, ruleset) ⇒ Object
- .run(dataset, ruleset) ⇒ Object
- .valid?(dataset, ruleset) ⇒ Boolean
Methods included from Registry
Class Method Details
.errors(dataset, ruleset) ⇒ Object
33 34 35 36 37 |
# File 'lib/rulix/validator.rb', line 33 def self.errors dataset, ruleset run = run dataset, ruleset run.deep_compact end |
.run(dataset, ruleset) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/rulix/validator.rb', line 7 def self.run dataset, ruleset dataset = data_for_ruleset dataset, ruleset dataset.deep_merge ruleset do |key, val1, val2| val2 = [val2] unless val2.is_a? Array ops = get_operations val2 success, errors = ops.reduce([true, []]) do |result, op| success, errors = result new_success, *new_errors = op.call(val1) [success && new_success, errors.concat(new_errors)] end errors end end |
.valid?(dataset, ruleset) ⇒ Boolean
27 28 29 30 31 |
# File 'lib/rulix/validator.rb', line 27 def self.valid? dataset, ruleset run = run dataset, ruleset run.deep_compact.empty? end |