Sha256: fb29ab17f8a52ee8cc81a05ac266887f818d29976001f2ad36fc253087e886fe

Contents?: true

Size: 1.24 KB

Versions: 9

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module Bulkrax
  module FileSetEntryBehavior
    def factory_class
      ::FileSet
    end

    def add_path_to_file
      parsed_metadata['file'].each_with_index do |filename, i|
        next if filename.blank?

        path_to_file = parser.path_to_files(filename: filename)

        parsed_metadata['file'][i] = path_to_file
      end
      parsed_metadata['file'].delete('')

      raise ::StandardError, "one or more file paths are invalid: #{parsed_metadata['file'].join(', ')}" unless parsed_metadata['file'].map { |file_path| ::File.file?(file_path) }.all?

      parsed_metadata['file']
    end

    def validate_presence_of_filename!
      return if parsed_metadata&.[]('file')&.map(&:present?)&.any?

      raise StandardError, 'File set must have a filename'
    end

    def validate_presence_of_parent!
      return if parsed_metadata[related_parents_parsed_mapping]&.map(&:present?)&.any?

      raise StandardError, 'File set must be related to at least one work'
    end

    def parent_jobs
      false # FileSet relationships are handled in ObjectFactory#create_file_set
    end

    def child_jobs
      raise ::StandardError, 'A FileSet cannot be a parent of a Collection, Work, or other FileSet'
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bulkrax-4.3.1 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.3.0 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.2.1 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.2.0 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.1.1 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.1.0 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-4.0.0 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-3.5.1 app/models/concerns/bulkrax/file_set_entry_behavior.rb
bulkrax-3.5.0 app/models/concerns/bulkrax/file_set_entry_behavior.rb