Class: Alchemy::PictureThumb
- Inherits:
-
BaseRecord
- Object
- ActiveRecord::Base
- BaseRecord
- Alchemy::PictureThumb
- Defined in:
- app/models/alchemy/picture_thumb.rb,
app/models/alchemy/picture_thumb/uid.rb,
app/models/alchemy/picture_thumb/create.rb,
app/models/alchemy/picture_thumb/signature.rb,
app/models/alchemy/picture_thumb/file_store.rb
Overview
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
Defined Under Namespace
Classes: Create, FileStore, Signature, Uid
Constant Summary
Constants included from SearchableResource
SearchableResource::SEARCHABLE_COLUMN_TYPES
Class Method Summary collapse
-
.generate_thumbs!(picture) ⇒ Object
Upfront generation of picture thumbnails.
-
.storage_class ⇒ Object
Thumbnail storage class.
-
.storage_class=(klass) ⇒ Object
Set a thumbnail storage class.
Methods included from SearchableResource
#ransackable_associations, #ransackable_attributes, #ransortable_attributes
Class Method Details
.generate_thumbs!(picture) ⇒ Object
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).
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'app/models/alchemy/picture_thumb.rb', line 41 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 |
.storage_class ⇒ Object
Thumbnail storage class
22 23 24 |
# File 'app/models/alchemy/picture_thumb.rb', line 22 def storage_class @_storage_class ||= Alchemy::PictureThumb::FileStore end |
.storage_class=(klass) ⇒ Object
Set a thumbnail storage class
29 30 31 |
# File 'app/models/alchemy/picture_thumb.rb', line 29 def storage_class=(klass) @_storage_class = klass end |