Class: SBOM::CycloneDX::Validator::StringValidator
- Inherits:
-
BaseValidator
- Object
- BaseValidator
- SBOM::CycloneDX::Validator::StringValidator
- Defined in:
- lib/sbom/cyclone_dx/validator/string_validator.rb
Constant Summary
Constants inherited from BaseValidator
BaseValidator::INVALID_TYPE, BaseValidator::MISSING_REQUIRED
Instance Method Summary collapse
-
#initialize(enum: nil, max_length: nil, min_length: nil, pattern: Pattern::DEFAULT, required: true) ⇒ StringValidator
constructor
TODO: Validate max/min_length >= 0 and max_length >= min_length.
- #validate(value) ⇒ Object
Methods inherited from BaseValidator
#raw_types, #required?, #valid?
Constructor Details
#initialize(enum: nil, max_length: nil, min_length: nil, pattern: Pattern::DEFAULT, required: true) ⇒ StringValidator
TODO: Validate max/min_length >= 0 and max_length >= min_length
12 13 14 15 16 17 18 |
# File 'lib/sbom/cyclone_dx/validator/string_validator.rb', line 12 def initialize(enum: nil, max_length: nil, min_length: nil, pattern: Pattern::DEFAULT, required: true) super(String, required: required) @enum = enum @length_range = (min_length..max_length) @pattern = pattern end |
Instance Method Details
#validate(value) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sbom/cyclone_dx/validator/string_validator.rb', line 20 def validate(value) rv = super return rv unless value.is_a?(String) rv << "Value is not within enum" if @enum&.exclude?(value) rv << "Value is not within length range" unless @length_range.cover?(value.length) rv << "Value does not match pattern" unless Pattern.match_exactly?(@pattern, value) rv end |