class BPL::Derivatives::PersistDatastreamOutputService

Public Class Methods

call(object, directives) click to toggle source
# File lib/bpl/derivatives/services/persist_datastream_output_service.rb, line 3
def self.call(object, directives)
  datastream = retrieve_datastream(object.original_object, directives)
  datastream.content = object.content
  datastream.mimeType = determine_mime_type(directives.fetch(:format))
  datastream.save
end
determine_mime_type(format) click to toggle source
# File lib/bpl/derivatives/services/persist_datastream_output_service.rb, line 10
def self.determine_mime_type(format)
  mime_format(format)
end

Private Class Methods

output_datastream(object, dsid) click to toggle source
# File lib/bpl/derivatives/services/persist_datastream_output_service.rb, line 22
def self.output_datastream(object, dsid)
  return object.datastreams[dsid] if object.datastreams[dsid]
  ds = BPL::Derivatives.config.output_file_class.new(object.inner_object, dsid) #ActiveFedora::Datastream
  object.add_datastream(ds)
  ds
end
retrieve_datastream(object, directives) click to toggle source
# File lib/bpl/derivatives/services/persist_datastream_output_service.rb, line 14
def self.retrieve_datastream(object, directives)
  dsid = directives.fetch(:dsid)
  raise ArgumentError, "#{dsid} is blank" if dsid.blank?
  output_datastream(object, dsid)
end