Class: SBOM::CycloneDX::Validator::UnionValidator
- Inherits:
-
BaseValidator
show all
- Defined in:
- lib/sbom/cyclone_dx/validator/union_validator.rb,
sig/sbom/cyclone_dx/validator/union_validator.rbs
Constant Summary
BaseValidator::INVALID_TYPE, BaseValidator::MISSING_REQUIRED
Instance Method Summary
collapse
#const?, #required?
Constructor Details
#initialize(of:, required: false) ⇒ UnionValidator
Returns a new instance of UnionValidator.
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/sbom/cyclone_dx/validator/union_validator.rb', line 11
def initialize(of:, required: false)
super(required: required)
@nested_validators = []
of.each do |union_item|
(klass, validator_params) = union_item.is_a?(Array) ? union_item : [union_item, {}]
@nested_validators << Validator.for(klass, required: required, **validator_params)
end
end
|
Instance Method Details
#raw_types ⇒ Object
33
34
35
|
# File 'lib/sbom/cyclone_dx/validator/union_validator.rb', line 33
def raw_types
@nested_validators.flat_map(&:raw_types)
end
|
#valid? ⇒ Boolean
20
|
# File 'sig/sbom/cyclone_dx/validator/union_validator.rbs', line 20
def valid?: (untyped) -> bool
|
#validate(value) ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/sbom/cyclone_dx/validator/union_validator.rb', line 23
def validate(value)
rv = @nested_validators.map { |validator| validator.validate(value) }
return [] if rv.any?(&:empty?)
rv.flatten
end
|