Sha256: c082783cab43d0404773646a3db34dace79dc94783c43926a3aa5904f870afc7

Contents?: true

Size: 861 Bytes

Versions: 4

Compression:

Stored size: 861 Bytes

Contents

# encoding: utf-8
module CarrierWave
  module Workers

    class ProcessAsset < Struct.new(:klass, :id, :column)
      def self.perform(*args)
        new(*args).perform
      end

      def perform(*args)
        set_args(*args) if args.present?
        record = constantized_resource.find id

        if record
          record.send(:"process_#{column}_upload=", true)
          if record.send(:"#{column}").recreate_versions! && record.respond_to?(:"#{column}_processing")
            record.update_attribute :"#{column}_processing", nil
          end
        end
      end

      private

      def set_args(klass, id, column)
        self.klass, self.id, self.column = klass, id, column
      end

      def constantized_resource
        klass.is_a?(String) ? klass.constantize : klass
      end

    end # ProcessAsset

  end # Workers
end # Backgrounder

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
carrierwave_backgrounder-0.2.2 lib/backgrounder/workers/process_asset.rb
carrierwave_backgrounder-0.2.1 lib/backgrounder/workers/process_asset.rb
carrierwave_backgrounder-0.2.0 lib/backgrounder/workers/process_asset.rb
carrierwave_backgrounder-0.1.4 lib/backgrounder/workers/process_asset.rb