Module: Hydra::Derivatives::ClassMethods

Defined in:
lib/hydra/derivatives.rb

Instance Method Summary collapse

Instance Method Details

#makes_derivatives(*callback_method_names, &block) ⇒ Object

Register transformation schemes for generating derivatives. You can do this using a block or by defining a callback method.

Examples:

Define transformation scheme using a block

makes_derivatives do |obj|
  case obj.mime_type
  when 'application/pdf'
    obj.transform_file :content, { :thumb => "100x100>" }
  when 'audio/wav'
    obj.transform_file :content, { :mp3 => {format: 'mp3'}, :ogg => {format: 'ogg'} }, processor: :audio

Define transformation scheme using a callback method

makes_derivatives :generate_image_derivatives

def generate_image_derivatives
  case mime_type
  when 'image/png', 'image/jpg'
    transform_file :content, { :medium => "300x300>", :thumb => "100x100>" }
  end
end


132
133
134
135
136
137
138
139
140
# File 'lib/hydra/derivatives.rb', line 132

def makes_derivatives(*callback_method_names, &block)
  self.transformation_schemes ||= []
  if block_given?
    self.transformation_schemes << block
  end
  callback_method_names.each do |callback_name|
    self.transformation_schemes << callback_name
  end
end