Module: CarrierWave::Workers::StoreAssetMixin

Includes:
Base
Included in:
ActiveJob::StoreAsset, StoreAsset
Defined in:
lib/backgrounder/workers/store_asset_mixin.rb

Instance Attribute Summary

Attributes included from Base

#column, #id, #klass, #record

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Base

#initialize

Class Method Details

.included(base) ⇒ Object



8
9
10
# File 'lib/backgrounder/workers/store_asset_mixin.rb', line 8

def self.included(base)
  base.extend CarrierWave::Workers::ClassMethods
end

Instance Method Details

#perform(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/backgrounder/workers/store_asset_mixin.rb', line 12

def perform(*args)
  record = super(*args)

  return unless record && record.send(:"#{column}_tmp")

  record.send :"process_#{column}_upload=", true
  record.send :"#{column}_cache=", record.send(:"#{column}_tmp")  # Set the cache path
  cache_assets! record.send(:"#{column}")                         # Trigger version creation
  store_assets! record.send(:"#{column}")                         # Store the files
  record.send :"#{column}_tmp=", nil
  record.send :"#{column}_processing=", false if record.respond_to?(:"#{column}_processing")
  record.save!
end