Sha256: 4b4b1211d8e0363dfb8b54b65edf510aac6206472e3fba8b5a624e1cf5fce83f

Contents?: true

Size: 503 Bytes

Versions: 1

Compression:

Stored size: 503 Bytes

Contents

module StValidation
  class ValidatorFactory
    attr_reader :transformations

    def initialize(transformations = [])
      @transformations = transformations
    end

    def build(blueprint)
      result = blueprint
      loop do
        old = result
        result = transformations.reduce(result) { |res, t| t.call(res, self) }
        break if result == old
      end

      raise InvalidBlueprintError unless result.is_a?(Proc) || result.is_a?(AbstractValidator)

      result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
st_validation-0.1.0 lib/st_validation/validator_factory.rb