class Hydra::Derivatives::ActiveEncodeDerivatives

Public Class Methods

create(object_or_filename, options) click to toggle source

@param [String, ActiveFedora::Base] object_or_filename source file name (or path), or an object that has a method that will return the file name @param [Hash] options options to pass to the encoder @option options [Symbol] :source a method that can be called on the object to retrieve the source file's name @option options [Symbol] :encode_class class name of the encode object (usually a subclass of ::ActiveEncode::Base) @options options [Array] :outputs a list of desired outputs

# File lib/hydra/derivatives/runners/active_encode_derivatives.rb, line 8
def self.create(object_or_filename, options)
  processor_opts = processor_options(options)
  source_file(object_or_filename, options) do |file_name|
    transform_directives(options.delete(:outputs)).each do |instructions|
      processor = processor_class.new(file_name, instructions, processor_opts)
      processor.process
    end
  end
end
output_file_service() click to toggle source

Use the output service configured for this class or default to the external file service

# File lib/hydra/derivatives/runners/active_encode_derivatives.rb, line 24
def self.output_file_service
  @output_file_service || PersistExternalFileOutputFileService
end
processor_class() click to toggle source
# File lib/hydra/derivatives/runners/active_encode_derivatives.rb, line 28
def self.processor_class
  Processors::ActiveEncode
end
source_file_service() click to toggle source

Use the source service configured for this class or default to the remote file service

# File lib/hydra/derivatives/runners/active_encode_derivatives.rb, line 19
def self.source_file_service
  @source_file_service || RemoteSourceFile
end

Private Class Methods

processor_options(options) click to toggle source

Build an options hash specifically for the processor isolated from the runner options

# File lib/hydra/derivatives/runners/active_encode_derivatives.rb, line 36
def processor_options(options)
  opts = { output_file_service: output_file_service }
  encode_class = options.delete(:encode_class)
  opts = opts.merge(encode_class: encode_class) if encode_class
  opts
end