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.
Constant Summary collapse
- VALID_CODES =
%w[aat lcmpt marcrelator rbmsrel].freeze
Instance Method Summary collapse
Methods inherited from BaseDescriptionVisitorValidator
#path_to_s, #visit_array, #visit_obj
Instance Method Details
#validate! ⇒ Object
10 11 12 13 14 |
# File 'lib/cocina/models/validators/description_role_source_code_visitor_validator.rb', line 10 def validate! return if error_paths.empty? raise ValidationError, "Unrecognized role source codes in description: #{error_paths.join(', ')}" end |
#visit_hash(hash:, path:) ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/cocina/models/validators/description_role_source_code_visitor_validator.rb', line 16 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 |