Class: Cocina::Models::Validators::DescriptionSubjectTemporalEncodingVisitorValidator
- Inherits:
-
BaseDescriptionVisitorValidator
- Object
- BaseDescriptionVisitorValidator
- Cocina::Models::Validators::DescriptionSubjectTemporalEncodingVisitorValidator
- Defined in:
- lib/cocina/models/validators/description_subject_temporal_encoding_visitor_validator.rb
Overview
Validates encoding.code for subject entries with type “time” against temporal_subject_encoding_codes.yml (union of LOC date-time and temporal source lists).
Instance Method Summary collapse
Methods inherited from BaseDescriptionVisitorValidator
#path_to_s, #visit_array, #visit_obj
Instance Method Details
#validate! ⇒ Object
9 10 11 12 13 |
# File 'lib/cocina/models/validators/description_subject_temporal_encoding_visitor_validator.rb', line 9 def validate! return if error_paths.empty? raise ValidationError, "Unrecognized subject temporal encoding codes in description: #{error_paths.join(', ')}" end |
#visit_hash(hash:, path:) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/cocina/models/validators/description_subject_temporal_encoding_visitor_validator.rb', line 15 def visit_hash(hash:, path:) return unless in_subject_path?(path) return unless hash[:type].to_s == 'time' encoding_code = hash.dig(:encoding, :code) return unless encoding_code error_paths << "#{path_to_s(path)}.encoding.code (#{encoding_code})" unless valid_codes.include?(encoding_code.downcase) end |