module CarrierWave::Workers::StoreAssetMixin

Attributes

cache_path[R]
tmp_directory[R]

Public Class Methods

included(base) click to toggle source
# File lib/backgrounder/workers/store_asset_mixin.rb, line 8
def self.included(base)
  base.extend CarrierWave::Workers::ClassMethods
end

Public Instance Methods

perform(*args) click to toggle source
Calls superclass method CarrierWave::Workers::Base#perform
# File lib/backgrounder/workers/store_asset_mixin.rb, line 14
def perform(*args)
  record = super(*args)

  if record && record.send(:"#{column}_tmp")
    store_directories(record)
    record.send :"process_#{column}_upload=", true
    record.send :"#{column}_tmp=", nil
    record.send :"#{column}_processing=", false if record.respond_to?(:"#{column}_processing")
    File.open(cache_path) { |f| record.send :"#{column}=", f }
    if record.save!
      FileUtils.rm_r(tmp_directory, :force => true)
    end
  else
    when_not_ready
  end
end

Private Instance Methods

store_directories(record) click to toggle source
# File lib/backgrounder/workers/store_asset_mixin.rb, line 33
def store_directories(record)
  asset, asset_tmp = record.send(:"#{column}"), record.send(:"#{column}_tmp")
  cache_directory  = File.expand_path(asset.cache_dir, asset.root)
  @cache_path      = File.join(cache_directory, asset_tmp)
  @tmp_directory   = File.join(cache_directory, asset_tmp.split("/").first)
end