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

Methods

Attributes

[R] transformations

Class Public methods

new(transformations)

📝 Source code
# File activestorage/lib/active_storage/transformers/transformer.rb, line 14
      def initialize(transformations)
        @transformations = transformations
      end
🔎 See on GitHub

Instance Public methods

transform(file, format:)

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.

📝 Source code
# File activestorage/lib/active_storage/transformers/transformer.rb, line 21
      def transform(file, format:)
        output = process(file, format: format)

        begin
          yield output
        ensure
          output.close!
        end
      end
🔎 See on GitHub

Instance Private methods

process(file, format:)

Returns an open Tempfile containing a transformed image in the given format. All subclasses implement this method.

📝 Source code
# File activestorage/lib/active_storage/transformers/transformer.rb, line 34
        def process(file, format:) #:doc:
          raise NotImplementedError
        end
🔎 See on GitHub