Class: FlexValidations::Chain

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

Defined Under Namespace

Classes: FailedMessage, SuccessMessage, SuccessResult

Instance Method Summary collapse

Methods included from Validation

#===, #to_proc

Constructor Details

#initialize(*validations) ⇒ Chain

Returns a new instance of Chain.



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

def initialize(*validations)
  @validations = validations
end

Instance Method Details

#to_sString

Returns:

  • (String)


31
32
33
# File 'lib/flex_validations/chain.rb', line 31

def to_s
  "chain of validations should succeed:\n#{IndentedString.new(NumberedList.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
27
28
# File 'lib/flex_validations/chain.rb', line 14

def validate(value)
  successes = []
  v = value
  @validations.each do |validation|
    res = validation.validate(v)

    return failed(value, successes, res) if res.fail?

    successes.push(res)

    v = res.raw
  end

  SuccessResult.new(self, successes, value, successes.last.raw)
end