Sha256: 226dfa12a9e6d6019f47d6bfb736357f94938fdcf50436fb084d741050594e87
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
module DelayedPaperclip module Attachment def self.included(base) base.send :include, InstanceMethods base.send :attr_accessor, :job_is_processing base.alias_method_chain :post_processing, :delay base.alias_method_chain :post_processing=, :delay base.alias_method_chain :save, :prepare_enqueueing base.alias_method_chain :most_appropriate_url, :processed base.alias_method_chain :post_process_styles, :processing end module InstanceMethods def post_processing_with_delay !delay_processing? end def post_processing_with_delay=(value) @post_processing_with_delay = value end def delayed_options @instance.class.attachment_definitions[@name][:delayed] end def delay_processing? if @post_processing_with_delay.nil? !!delayed_options else !@post_processing_with_delay end end def processing? @instance.send(:"#{@name}_processing?") end def process_delayed! self.job_is_processing = true reprocess! self.job_is_processing = false end def post_process_styles_with_processing(*args) post_process_styles_without_processing(*args) instance.update_attribute("#{name}_processing", false) if instance.respond_to?(:"#{name}_processing?") end def save_with_prepare_enqueueing was_dirty = @dirty save_without_prepare_enqueueing.tap do if delay_processing? && was_dirty instance.prepare_enqueueing_for name end end end def most_appropriate_url_with_processed if original_filename.nil? || delayed_default_url? default_url else @options.url end end def delayed_default_url? !(job_is_processing || dirty? || !delayed_options.try(:[], :url_with_processing) || !(@instance.respond_to?(:"#{name}_processing?") && processing?)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
delayed_paperclip-2.4.5.0 | lib/delayed_paperclip/attachment.rb |