Sha256: 26fe44d968bed3737553e024c809a6eaa6033c4d89b25b0bccf773324b825b26

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

module CarrierWaveDelay
    module Model

        extend ActiveSupport::Concern

        included do
            cattr_accessor :carrierwave_delay_columns
        end

        module ClassMethods

            def carrierwave_delay columns
                after_save :carrierwave_delay_process
                self.carrierwave_delay_columns = columns
            end

            def carrierwave_delay_queue
                :default
            end
            def carrierwave_delay_priority
                20
            end

        end

        def recreate_delayed_versions!
            self.class.carrierwave_delay_columns.each do |column|
                unless self.send(column).file.nil?
                    self.send(column).is_processing_delayed = true
                    self.send(column).recreate_versions!
                end
            end
        end

        private

        def carrierwave_delay_process
            self.delay(queue: self.class.carrierwave_delay_queue, priority: self.class.carrierwave_delay_priority, retry: false).recreate_delayed_versions!
        end

    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carrierwave-delay-0.1.2 lib/carrierwave-delay/model.rb