Class: Cocina::Models::Validators::DescriptionRoleSourceCodeVisitorValidator

Inherits:
BaseDescriptionVisitorValidator show all
Defined in:
lib/cocina/models/validators/description_role_source_code_visitor_validator.rb

Overview

Validates contributor.role.source.code values against role_source_codes.yml.

Instance Method Summary collapse

Methods inherited from BaseDescriptionVisitorValidator

#path_to_s, #visit_array, #visit_obj

Instance Method Details

#validate!Object

Raises:



8
9
10
11
12
# File 'lib/cocina/models/validators/description_role_source_code_visitor_validator.rb', line 8

def validate!
  return if error_paths.empty?

  raise ValidationError, "Unrecognized role source codes in description: #{error_paths.join(', ')}"
end

#visit_hash(hash:, path:) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/cocina/models/validators/description_role_source_code_visitor_validator.rb', line 14

def visit_hash(hash:, path:)
  return unless role_path?(path)

  source_code = hash.dig(:source, :code)
  return unless source_code
  return if valid_codes.include?(source_code.downcase)

  error_paths << "#{path_to_s(path)}.source.code (#{source_code})"
end