Sha256: 3d18ad528f8a2bcc0bdaa726f1590d48f2ff9676e7a00dcc13cfcbd2ad57ed27
Contents?: true
Size: 1.75 KB
Versions: 47
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true module Alchemy # The persisted version of a rendered picture variant # # You can configure the generator class to implement a # different thumbnail store (ie. a remote file storage). # # config/initializers/alchemy.rb # Alchemy::PictureThumb.storage_class = My::ThumbnailStore # class PictureThumb < BaseRecord belongs_to :picture, class_name: "Alchemy::Picture" validates :signature, presence: true validates :uid, presence: true class << self # Thumbnail storage class # # @see Alchemy::PictureThumb::FileStore def storage_class @_storage_class ||= Alchemy::PictureThumb::FileStore end # Set a thumbnail storage class # # @see Alchemy::PictureThumb::FileStore def storage_class=(klass) @_storage_class = klass end # Upfront generation of picture thumbnails # # Called after a Alchemy::Picture has been created (after an image has been uploaded) # # Generates three types of thumbnails that are used by Alchemys picture archive and # persists them in the configures file store (Default Dragonfly::FileDataStore). # # @see Picture::THUMBNAIL_SIZES def generate_thumbs!(picture) Alchemy::Picture::THUMBNAIL_SIZES.values.each do |size| variant = Alchemy::PictureVariant.new(picture, { size: size, flatten: true }) signature = Alchemy::PictureThumb::Signature.call(variant) thumb = find_by(signature: signature) next if thumb uid = Alchemy::PictureThumb::Uid.call(signature, variant) Alchemy::PictureThumb::Create.call(variant, signature, uid) end end end end end
Version data entries
47 entries across 47 versions & 1 rubygems