Class: BPL::Derivatives::PersistBasicContainedOutputFileService
- Inherits:
-
PersistOutputFileService
- Object
- PersistOutputFileService
- BPL::Derivatives::PersistBasicContainedOutputFileService
- Defined in:
- lib/bpl/derivatives/services/persist_basic_contained_output_file_service.rb
Overview
This Service is an implementation of the Hydra::Derivatives::PeristOutputFileService It supports basic contained files, which is the behavior associated with Fedora 3 file datastreams that were migrated to Fedora 4 and, at the time that this class was authored, corresponds to the behavior of ActiveFedora::Base.attach_file and ActiveFedora::Base.attached_files Rename this
Class Method Summary collapse
-
.call(object, directives) ⇒ Object
This method conforms to the signature of the .call method on Hydra::Derivatives::PeristOutputFileService * Persists the file within the object at destination_name.
- .determine_mime_type(file) ⇒ Object
- .determine_original_name(file) ⇒ Object
- .new_mime_type(extension, charset = nil) ⇒ Object
Class Method Details
.call(object, directives) ⇒ Object
This method conforms to the signature of the .call method on Hydra::Derivatives::PeristOutputFileService
-
Persists the file within the object at destination_name
NOTE: Uses basic containment. If you want to use direct containment (ie. with PCDM) you must use a different service (ie. Hydra::Works::AddFileToGenericFile Service)
16 17 18 19 20 21 22 23 |
# File 'lib/bpl/derivatives/services/persist_basic_contained_output_file_service.rb', line 16 def self.call(object, directives) file = io(object.content, directives) remote_file = retrieve_remote_file(directives) remote_file.content = file remote_file.mime_type = determine_mime_type(file) remote_file.original_name = determine_original_name(file) remote_file.save end |
.determine_mime_type(file) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/bpl/derivatives/services/persist_basic_contained_output_file_service.rb', line 35 def self.determine_mime_type(file) if file.respond_to? :mime_type file.mime_type else "appliction/octet-stream" end end |
.determine_original_name(file) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/bpl/derivatives/services/persist_basic_contained_output_file_service.rb', line 26 def self.determine_original_name(file) if file.respond_to? :original_filename file.original_filename else "derivative" end end |
.new_mime_type(extension, charset = nil) ⇒ Object
61 62 63 64 65 |
# File 'lib/bpl/derivatives/services/persist_basic_contained_output_file_service.rb', line 61 def self.new_mime_type(extension, charset = nil) fmt = mime_format(extension) fmt += "; charset=#{charset}" if charset fmt end |