Class: FlexValidations::Chain
- Inherits:
-
Object
- Object
- FlexValidations::Chain
- Includes:
- Validation
- Defined in:
- lib/flex_validations/chain.rb
Defined Under Namespace
Classes: FailedMessage, SuccessMessage, SuccessResult
Instance Method Summary collapse
-
#initialize(*validations) ⇒ Chain
constructor
A new instance of Chain.
- #to_s ⇒ String
- #validate(value) ⇒ FlexValidations::Result
Methods included from Validation
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_s ⇒ 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
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 |