Sha256: a6b7364af1f285cd82a23cf01623418c5965ae1d1ce42fe9aec4891b23c9e66a
Contents?: true
Size: 1.05 KB
Versions: 36
Compression:
Stored size: 1.05 KB
Contents
module Schemacop module V2 class StringValidator < Node register symbols: :string, klasses: String option :min option :max def initialize(options = {}) super(options) validate_options! end def validate(data, collector) super if option?(:min) && data.size < option(:min) collector.error "String must be longer (>=) than #{option(:min)} characters." end if option?(:max) && data.size > option(:max) collector.error "String must be shorter (<=) than #{option(:max)} characters." end end protected def validate_options! option_schema = Schema.new :integer, min: 0 if option?(:min) && option_schema.invalid?(option(:min)) fail Exceptions::InvalidSchemaError, 'String option :min must be an integer >= 0.' elsif option?(:max) && option_schema.invalid?(option(:max)) fail Exceptions::InvalidSchemaError, 'String option :max must be an integer >= 0.' end end end end end
Version data entries
36 entries across 36 versions & 1 rubygems