Class: ActiveStorage::Transformers::Transformer

Inherits:
Object
  • Object
show all
Defined in:
activestorage/lib/active_storage/transformers/transformer.rb

Overview

A Transformer applies a set of transformations to an image.

The following concrete subclasses are included in Active Storage:

  • ActiveStorage::Transformers::ImageProcessingTransformer: backed by ImageProcessing, a common interface for MiniMagick and ruby-vips

  • ActiveStorage::Transformers::MiniMagickTransformer: backed by MiniMagick, a wrapper around the ImageMagick CLI

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(transformations) ⇒ Transformer

Returns a new instance of Transformer.


17
18
19
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 17

def initialize(transformations)
  @transformations = transformations
end

Instance Attribute Details

#transformationsObject (readonly)

Returns the value of attribute transformations


15
16
17
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 15

def transformations
  @transformations
end

Instance Method Details

#transform(file, format:) ⇒ Object

Applies the transformations to the source image in file, producing a target image in the specified format. Yields an open Tempfile containing the target image. Closes and unlinks the output tempfile after yielding to the given block. Returns the result of the block.


24
25
26
27
28
29
30
31
32
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 24

def transform(file, format:)
  output = process(file, format: format)

  begin
    yield output
  ensure
    output.close!
  end
end