123456789_123456789_123456789_123456789_123456789_

Class: ActiveStorage::Transformers::Transformer

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Inherits: Object
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:

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(transformations) ⇒ Transformer

[ GitHub ]

  
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 14

def initialize(transformations)
  @transformations = transformations
end

Instance Attribute Details

#transformations (readonly)

[ GitHub ]

  
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 12

attr_reader :transformations

Instance Method Details

#process(file, format:) (private)

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

Raises:

  • (NotImplementedError)
[ GitHub ]

  
# File 'activestorage/lib/active_storage/transformers/transformer.rb', line 34

def process(file, format:) #:doc:
  raise NotImplementedError
end

#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.

[ GitHub ]

  
# 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