module ComposableValidations::Combinators
Public Instance Methods
fail_fast(*validators)
click to toggle source
# 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)
click to toggle source
# File lib/composable_validations/combinators.rb, line 22 def nil_or(*validators) precheck(*validators, &:nil?) end
precheck(*validators) { |object| ... }
click to toggle source
# 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)
click to toggle source
# 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