Sha256: a52c225cf51c973a28cf14d97fb61a2e6b54b7b5d2c7db2ce3e0b090acb6470f
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
require 'set' require_relative "st_validation/version" require_relative "st_validation/errors" require_relative 'st_validation/validator_factory' Dir[File.join(__dir__, 'st_validation', 'validators', '*.rb')].each { |file| require file } module StValidation class << self def build(blueprint) basic_factory.build(blueprint) end def with_extra_transformations(*transformations) all_transformations = transformations + basic_transformations StValidation::ValidatorFactory.new(all_transformations) end def basic_factory StValidation::ValidatorFactory.new(basic_transformations) end private def basic_transformations [ ->(bp, _factory) { bp.is_a?(Class) ? class_validator(bp) : bp }, ->(bp, factory) { bp.is_a?(Set) ? union_validator(bp, factory) : bp }, ->(bp, factory) { bp.is_a?(Hash) ? hash_validator(bp, factory) : bp }, ->(bp, factory) { bp.is_a?(Array) && bp.size == 1 ? array_validator(bp[0], factory) : bp } ] end def class_validator(klass) Validators::ClassValidator.new(klass) end def union_validator(blueprint, factory) Validators::UnionValidator.new(blueprint, factory) end def array_validator(blueprint, factory) Validators::ArrayValidator.new(blueprint, factory) end def hash_validator(blueprint, factory) Validators::HashValidator.new(blueprint, factory) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
st_validation-0.2.0 | lib/st_validation.rb |
st_validation-0.1.0 | lib/st_validation.rb |