Module: ComposableValidations::Combinators
- Included in:
- ComposableValidations
- Defined in:
- lib/composable_validations/combinators.rb
Instance Method Summary collapse
- #fail_fast(*validators) ⇒ Object
- #nil_or(*validators) ⇒ Object
- #precheck(*validators, &blk) ⇒ Object
- #run_all(*validators) ⇒ Object
Instance Method Details
#fail_fast(*validators) ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/composable_validations/combinators.rb', line 13 def fail_fast(*validators) lambda do |object, errors, prefix| validators.each do |validator| return false if !validator.call(object, errors, prefix) end true end end |
#nil_or(*validators) ⇒ Object
22 23 24 |
# File 'lib/composable_validations/combinators.rb', line 22 def nil_or(*validators) precheck(*validators, &:nil?) end |
#precheck(*validators, &blk) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/composable_validations/combinators.rb', line 26 def precheck(*validators, &blk) lambda do |object, errors, prefix| return true if yield(object) run_all(*validators).call(object, errors, prefix) end end |
#run_all(*validators) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/composable_validations/combinators.rb', line 4 def run_all(*validators) lambda do |object, errors, prefix| validators.inject(true) do |acc, validator| r = validator.call(object, errors, prefix) acc && r end end end |