класс ActiveStorage::Variation
Набор преобразований, которые могут быть применены к блобу для создания варианта. Этот класс доступен через метод ActiveStorage::Blob::Representable#variant и редко используется напрямую.
В случае необходимости использования напрямую, он инициализируется с помощью хэша преобразований, где ключ — команда, а значение — аргументы. Пример:
ActiveStorage::Variation.new(resize_to_limit: [100, 100], monochrome: true, trim: true, rotate: "-90")
Параметры напрямую соответствуют командам из ImageProcessing.
Атрибуты
Открытые методы класса
# File activestorage/app/models/active_storage/variation.rb, line 31 def decode(key) new ActiveStorage.verifier.verify(key, purpose: :variation) end
Возвращает экземпляр Variation с преобразованиями, которые были закодированы encode.
# File activestorage/app/models/active_storage/variation.rb, line 37 def encode(transformations) ActiveStorage.verifier.generate(transformations, purpose: :variation) end
Возвращает подписанный ключ для transformations, который может быть использован для ссылки на определенный вариант в URL или комбинированном ключе (например, ActiveStorage::Variant#key).
# File activestorage/app/models/active_storage/variation.rb, line 42 def initialize(transformations) @transformations = transformations.deep_symbolize_keys end
# File activestorage/app/models/active_storage/variation.rb, line 19
def wrap(variator)
case variator
when self
variator
when String
decode variator
else
new variator
end
end Возвращает экземпляр Variation на основе заданного вариатора. Если вариатор — Variation, он возвращается без изменений. Если это строка, она передаётся в ::decode. В противном случае предполагается, что это хэш преобразований (Hash) и передаётся напрямую в конструктор.
Открытые методы экземпляра
# File activestorage/app/models/active_storage/variation.rb, line 57 def key self.class.encode(transformations) end
Возвращает подписанный ключ для всех transformations, с которыми был создан этот вариант.
# File activestorage/app/models/active_storage/variation.rb, line 50
def transform(file, format: nil, &block)
ActiveSupport::Notifications.instrument("transform.active_storage") do
transformer.transform(file, format: format, &block)
end
end Принимает объект File, выполняет преобразования над ним и сохраняет преобразованное изображение во временный файл. Если указан параметр `format`, он будет форматом результирующего изображения, в противном случае результирующее изображение сохраняет исходный формат.
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.