duke-libraries/ddr-models

View on GitHub
lib/ddr/derivatives/generator.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Ddr
  module Derivatives
    # @abstract
    class Generator

      attr_reader :source, :output, :options

      def initialize source, output, options=nil
        raise ArgumentError, "Source must be a File or path to a file" unless Ddr::Utils.file_or_path?(source)
        raise ArgumentError, "Output must be a File or path to a file" unless Ddr::Utils.file_or_path?(output)
        @source = source
        @output = output
        @options = options
      end

      # The mime type of the output generated.
      # Implemented in each subclass.
      def self.output_mime_type
        raise NotImplementedError
      end

      # The actions required to generate the output from the source.
      # Implemented in each subclass.
      def generate
        raise NotImplementedError
      end
    end
  end
end