duke-libraries/ddr-models

View on GitHub
lib/ddr/derivatives.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Ddr
  module Derivatives
    extend ActiveSupport::Autoload

    autoload :Generator
    autoload :PngGenerator
    autoload :PtifGenerator
    autoload :UpdateDerivatives

    Derivative = Struct.new(:name, :datastream, :generator, :options)

    # Derivatives to generate.  Array of DERIVATIVE names
    mattr_accessor :update_derivatives

    # Eventually, we should inject the generator (probably) and the options (certainly) for each derivative
    # (e.g., from configuration)
    DERIVATIVES = {
                    multires_image:
                        Derivative.new( :multires_image,
                                        Ddr::Datastreams::MULTIRES_IMAGE,
                                        Ddr::Derivatives::PtifGenerator,
                                        "jpeg:90,tile:256x256,pyramid"),
                    thumbnail:
                        Derivative.new( :thumbnail,
                                        Ddr::Datastreams::THUMBNAIL,
                                        Ddr::Derivatives::PngGenerator,
                                        "-resize '100x100>'")
                  }

    # Yields an object with module configuration accessors
    def self.configure
      yield self
    end

  end
end