Class: Cocina::Models::Validators::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/cocina/models/validators/validator.rb

Overview

Perform validation against all other Validators

Constant Summary collapse

VALIDATORS =
[
  JsonSchemaValidator,
  CompositeDescriptionValidator,
  CompositeStructuralValidator,
  PurlValidator,
  CatalogLinksValidator,
  AssociatedNameValidator
].freeze

Class Method Summary collapse

Class Method Details

.validate(clazz, attributes, validators: VALIDATORS) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/cocina/models/validators/validator.rb', line 17

def self.validate(clazz, attributes, validators: VALIDATORS)
  # This gets rid of nested model objects.
  attributes_hash = attributes.to_h.deep_transform_values do |value|
    value.class.name.starts_with?('Cocina::Models') ? value.to_h : value
  end.with_indifferent_access
  validators.each { |validator| validator.validate(clazz, attributes_hash) }
end