Module: SBOM::CycloneDX::Validator

Defined in:
lib/sbom/cyclone_dx/validator/uri_validator.rb,
lib/sbom/cyclone_dx/validator.rb,
lib/sbom/cyclone_dx/validator/base_validator.rb,
lib/sbom/cyclone_dx/validator/array_validator.rb,
lib/sbom/cyclone_dx/validator/float_validator.rb,
lib/sbom/cyclone_dx/validator/union_validator.rb,
lib/sbom/cyclone_dx/validator/record_validator.rb,
lib/sbom/cyclone_dx/validator/string_validator.rb,
lib/sbom/cyclone_dx/validator/boolean_validator.rb,
lib/sbom/cyclone_dx/validator/integer_validator.rb,
lib/sbom/cyclone_dx/validator/date_time_validator.rb,
lib/sbom/cyclone_dx/validator/email_address_validator.rb

Overview

TODO: Add helpful errors

Defined Under Namespace

Classes: ArrayValidator, BaseValidator, BooleanValidator, DateTimeValidator, EmailAddressValidator, FloatValidator, IntegerValidator, RecordValidator, StringValidator, URIValidator, UnionValidator

Constant Summary collapse

SIMPLE_TYPES =
i[boolean date_time email_address float integer string uri].freeze

Class Method Summary collapse

Class Method Details

.for(type, **kwargs) ⇒ Object

rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/AbcSize



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sbom/cyclone_dx/validator.rb', line 11

def for(type, **kwargs) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/AbcSize
  case type
  when :array then ArrayValidator.new(items: kwargs.fetch(:items), **kwargs)
  when :boolean then BooleanValidator.new(**kwargs)
  when :date_time then DateTimeValidator.new(**kwargs)
  when :email_address then EmailAddressValidator.new(**kwargs)
  when :float then FloatValidator.new(**kwargs)
  when :integer then IntegerValidator.new(**kwargs)
  when :string then StringValidator.new(**kwargs)
  when :union then UnionValidator.new(of: kwargs.fetch(:of), **kwargs)
  when :uri then URIValidator.new(**kwargs)
  when Class
    raise ArgumentError, "Unsupported type: #{type.name}" unless type < Record::Base

    RecordValidator.new(type: type, **kwargs)
  else raise ArgumentError, "Unsupported type: #{type}"
  end
end