class FlexValidations::Chain

Public Class Methods

new(*validations) click to toggle source
# File lib/flex_validations/chain.rb, line 7
def initialize(*validations)
  @validations = validations
end

Public Instance Methods

to_s() click to toggle source

@return [String]

# 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) click to toggle source

@param value [Object] Value to be validated

@return [FlexValidations::Result]

# 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

Private Instance Methods

failed(value, successes, res) click to toggle source
# File lib/flex_validations/chain.rb, line 83
def failed(value, successes, res)
  Result::Fail::Simple.new(self, FailedMessage.new(value, successes, res), value, res.raw)
end