Class: Cocina::Models::Validators::MarcRelatorRoleValidator

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

Overview

Validates that contributor role codes from the marcrelator vocabulary are valid MARC relator codes. Includes discontinued codes. See www.loc.gov/marc/relators/relacode.html

Constant Summary collapse

MARCRELATOR_SOURCE_CODES =
%w[marcrelator].freeze
MARCRELATOR_SOURCE_URI =
'http://id.loc.gov/vocabulary/relators/'

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(clazz, attributes) ⇒ MarcRelatorRoleValidator

Returns a new instance of MarcRelatorRoleValidator.



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

def initialize(clazz, attributes)
  @clazz = clazz
  @attributes = attributes
  @errors = []
end

Class Method Details

.validate(clazz, attributes) ⇒ Object



14
15
16
# File 'lib/cocina/models/validators/marc_relator_role_validator.rb', line 14

def self.validate(clazz, attributes)
  new(clazz, attributes).validate
end

Instance Method Details

#validateObject

Raises:



24
25
26
27
28
29
# File 'lib/cocina/models/validators/marc_relator_role_validator.rb', line 24

def validate
  return unless meets_preconditions?

  resources.each { |resource| validate_resource(resource) }
  raise ValidationError, "Invalid MARC relator codes in description: #{@errors.join(', ')}" if @errors.any?
end