Class: FlexValidations::Or

Inherits:
Object
  • Object
show all
Includes:
Validation
Defined in:
lib/flex_validations/or.rb

Defined Under Namespace

Classes: FailedMessage

Instance Method Summary collapse

Methods included from Validation

#===, #to_proc

Constructor Details

#initialize(*validations) ⇒ Or

Returns a new instance of Or.



7
8
9
# File 'lib/flex_validations/or.rb', line 7

def initialize(*validations)
  @validations = validations
end

Instance Method Details

#to_sString

Returns:

  • (String)


29
30
31
# File 'lib/flex_validations/or.rb', line 29

def to_s
  "any of validation should succeed:\n#{IndentedString.new(List.new(@validations))}"
end

#validate(value) ⇒ FlexValidations::Result

Parameters:

  • value (Object)

    Value to be validated

Returns:



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/flex_validations/or.rb', line 14

def validate(value)
  fails = []

  @validations.each do |validation|
    res = validation.validate(value)

    return Result::Success::Composite.new(self, validation, res.message, value, res.raw) if res.success?

    fails.push(res)
  end

  Result::Fail::Simple.new(self, FailedMessage.new(fails), value, value)
end