Module: Bulkrax::FileSetEntryBehavior
Defined Under Namespace
Classes: FileNameError, FilePathError, OrphanFileSetError
Instance Method Summary
collapse
Instance Method Details
#add_path_to_file ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 25
def add_path_to_file
return unless file_reference == '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 if path_to_file.present?
end
parsed_metadata['file'].delete('')
raise FilePathError, "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
|
#child_jobs ⇒ Object
58
59
60
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 58
def child_jobs
raise ::StandardError, "A #{Bulkrax.file_model_class} cannot be a parent of a #{Bulkrax.collection_model_class}, Work, or other #{Bulkrax.file_model_class}"
end
|
#file_reference ⇒ Object
20
21
22
23
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 20
def file_reference
return 'file' if parsed_metadata&.[]('file')&.map(&:present?)&.any?
return 'remote_files' if parsed_metadata&.[]('remote_files')&.map(&:present?)&.any?
end
|
#parent_jobs ⇒ Object
54
55
56
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 54
def parent_jobs
false end
|
#validate_presence_of_filename! ⇒ Object
42
43
44
45
46
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 42
def validate_presence_of_filename!
return if parsed_metadata&.[](file_reference)&.map(&:present?)&.any?
raise FileNameError, 'File set must have a filename'
end
|
#validate_presence_of_parent! ⇒ Object
48
49
50
51
52
|
# File 'app/models/concerns/bulkrax/file_set_entry_behavior.rb', line 48
def validate_presence_of_parent!
return if parsed_metadata[related_parents_parsed_mapping]&.map(&:present?)&.any?
raise OrphanFileSetError, 'File set must be related to at least one work'
end
|