Class: Cocina::Models::Validators::DescriptionLanguageUriVisitorValidator
- Inherits:
-
BaseDescriptionVisitorValidator
- Object
- BaseDescriptionVisitorValidator
- Cocina::Models::Validators::DescriptionLanguageUriVisitorValidator
- Defined in:
- lib/cocina/models/validators/description_language_uri_visitor_validator.rb
Overview
Validates language.uri and valueLanguage.uri against LC ISO 639-2, LC MARC languages, and 5 approved ISO 639-3 URIs. Both http and https are acceptable.
Constant Summary collapse
- ISO639_3_CODES =
%w[ase dnt quc skr trw tta].freeze
Instance Method Summary collapse
Methods inherited from BaseDescriptionVisitorValidator
#path_to_s, #visit_array, #visit_obj
Instance Method Details
#validate! ⇒ Object
20 21 22 23 24 |
# File 'lib/cocina/models/validators/description_language_uri_visitor_validator.rb', line 20 def validate! return if error_paths.empty? raise ValidationError, "Invalid language URIs in description: #{error_paths.join(', ')}" end |
#visit_hash(hash:, path:) ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/cocina/models/validators/description_language_uri_visitor_validator.rb', line 11 def visit_hash(hash:, path:) return unless language_or_value_language_path?(path) uri = hash[:uri] return unless uri error_paths << "#{path_to_s(path)}.uri (#{uri})" unless valid_uri?(uri) end |