Class: Cocina::Models::Validators::ReservedFilenameVisitorValidator

Inherits:
BaseStructuralVisitorValidator show all
Defined in:
lib/cocina/models/validators/reserved_filename_visitor_validator.rb

Overview

Validates that bare external identifier not used as a root filename or directory. This is necessary due to the bare druid being used as part of the Stacks file layout.

Instance Method Summary collapse

Methods inherited from BaseStructuralVisitorValidator

#initialize

Constructor Details

This class inherits a constructor from Cocina::Models::Validators::BaseStructuralVisitorValidator

Instance Method Details

#validate!Object

Raises:



18
19
20
21
22
# File 'lib/cocina/models/validators/reserved_filename_visitor_validator.rb', line 18

def validate!
  return if invalid_filenames.empty?

  raise ValidationError, 'Bare druid may not be used as a filename or a base directory'
end

#visit_file(file_hash:) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/cocina/models/validators/reserved_filename_visitor_validator.rb', line 9

def visit_file(file_hash:)
  return unless bare_external_identifier.present?

  filename = file_hash[:filename]
  return unless filename.present?

  invalid_filenames << filename if reserved?(filename)
end