lib/backgrounder/orm/base.rb in carrierwave_backgrounder-0.0.9 vs lib/backgrounder/orm/base.rb in carrierwave_backgrounder-0.1.0
- old
+ new
@@ -37,22 +37,17 @@
# def self.up
# add_column :users, :avatar_processing, :boolean
# end
#
def process_in_background(column, worker=::CarrierWave::Workers::ProcessAsset)
- send :before_save, :"set_#{column}_processing", :if => :"trigger_#{column}_background_processing?"
- if self.respond_to?(:after_commit)
- send :after_commit, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_processing?"
- else
- send :after_save, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_processing?"
- end
send :attr_accessor, :"process_#{column}_upload"
- mod = Module.new
- include mod
+ send :before_save, :"set_#{column}_processing", :if => :"trigger_#{column}_background_processing?"
+ callback = self.respond_to?(:after_commit) ? :after_commit : :after_save
+ send callback, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_processing?"
- mod.module_eval <<-RUBY, __FILE__, __LINE__ + 1
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
def set_#{column}_processing
self.#{column}_processing = true if respond_to?(:#{column}_processing)
end
@@ -88,19 +83,15 @@
# mount_uploader :avatar, AvatarUploader
# store_in_background :avatar, CustomWorker
# end
#
def store_in_background(column, worker=::CarrierWave::Workers::StoreAsset)
- if self.respond_to?(:after_commit)
- send :after_commit, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_storage?"
- else
- send :after_save, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_storage?"
- end
send :attr_accessor, :"process_#{column}_upload"
- mod = Module.new
- include mod
- mod.module_eval <<-RUBY, __FILE__, __LINE__ + 1
+ callback = self.respond_to?(:after_commit) ? :after_commit : :after_save
+ send callback, :"enqueue_#{column}_background_job", :if => :"trigger_#{column}_background_storage?"
+
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
def write_#{column}_identifier
super() and return if process_#{column}_upload
self.#{column}_tmp = _mounter(:#{column}).cache_name if _mounter(:#{column}).cache_name
end