Class: Cocina::Models::Validators::DescriptionRoleSourceCodeVisitorValidator
- Inherits:
-
BaseDescriptionVisitorValidator
- Object
- BaseDescriptionVisitorValidator
- Cocina::Models::Validators::DescriptionRoleSourceCodeVisitorValidator
- 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
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 |