module CarrierWave::Backgrounder::ORM::DataMapper

Public Instance Methods

process_in_background(column, worker=::CarrierWave::Workers::ProcessAsset) click to toggle source
# File lib/backgrounder/orm/data_mapper.rb, line 8
        def process_in_background(column, worker=::CarrierWave::Workers::ProcessAsset)
          super

          class_eval  <<-RUBY, __FILE__, __LINE__ + 1
            def set_#{column}_processing
              @#{column}_changed = attribute_dirty?(:#{column})
              self.#{column}_processing = true if respond_to?(:#{column}_processing)
            end
          RUBY
        end
store_in_background(column, worker=::CarrierWave::Workers::StoreAsset) click to toggle source
# File lib/backgrounder/orm/data_mapper.rb, line 19
        def store_in_background(column, worker=::CarrierWave::Workers::StoreAsset)
          super

          class_eval  <<-RUBY, __FILE__, __LINE__ + 1
            def set_#{column}_changed
              @#{column}_changed = attribute_dirty?(:#{column})
            end

            def write_#{column}_identifier
              super and return if process_#{column}_upload
              self.#{column}_tmp = _mounter(:#{column}).cache_name
            end
          RUBY
        end

Private Instance Methods

_define_shared_backgrounder_methods(mod, column, worker) click to toggle source
Calls superclass method CarrierWave::Backgrounder::ORM::Base#_define_shared_backgrounder_methods
# File lib/backgrounder/orm/data_mapper.rb, line 36
        def _define_shared_backgrounder_methods(mod, column, worker)
          before :save, :"set_#{column}_changed"
          after  :save, :"enqueue_#{column}_background_job"

          super

          class_eval  <<-RUBY, __FILE__, __LINE__ + 1
            attr_reader :#{column}_changed

            def enqueue_#{column}_background_job
              if enqueue_#{column}_background_job?
                CarrierWave::Backgrounder.enqueue_for_backend(#{worker}, self.class.name, id, #{column}.mounted_as)
                @#{column}_changed = false
              end
            end

            def #{column}_updated?
              #{column}_changed
            end
          RUBY
        end