Class: Hydra::Derivatives::PersistOutputFileService

Inherits:
Object
  • Object
show all
Defined in:
lib/hydra/derivatives/services/persist_output_file_service.rb

Class Method Summary collapse

Class Method Details

.call(_file_path, _directives) ⇒ Object

Persists the file within the object at destination_name. Uses basic containment. If you want to use direct containment (ie. with PCDM) you must use a different service (ie. Hydra::Works::AddFileToGenericFile Service)

Parameters:

  • file_path (String)

    the path to the file to be added

  • directives (Hash)

    directions which can be used to determine where to persist to.

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/hydra/derivatives/services/persist_output_file_service.rb', line 8

def self.call(_file_path, _directives)
  raise NotImplementedError, "PersistOutputFileService is an abstract class. Implement `call' on #{self.class.name}"
end

.determine_mime_type(file) ⇒ Object

Parameters:



22
23
24
25
26
27
28
# File 'lib/hydra/derivatives/services/persist_output_file_service.rb', line 22

def self.determine_mime_type(file)
  if file.respond_to? :mime_type
    file.mime_type
  else
    "application/octet-stream"
  end
end

.determine_original_name(file) ⇒ Object

Parameters:



13
14
15
16
17
18
19
# File 'lib/hydra/derivatives/services/persist_output_file_service.rb', line 13

def self.determine_original_name(file)
  if file.respond_to? :original_filename
    file.original_filename
  else
    "derivative"
  end
end