about summary refs log tree commit diff
path: root/lib/paperclip/attachment_extensions.rb
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2020-03-22 16:10:44 +0100
committerThibaut Girka <thib@sitedethib.com>2020-03-22 16:10:44 +0100
commit9abb227250bd2b377d96626122d431ba30c5f5e0 (patch)
treec3072e0098155cbb7b6f86830cfd0b174703f23e /lib/paperclip/attachment_extensions.rb
parent7115b0b8c99b7e88aee264be75945e592dec33e4 (diff)
parentcd6d851d83c38c4f160ae939e08a913bd98fbd8f (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
- `README.md`:
  Our README.md files are completely different. Discarded upstream changes.
- `app/javascript/core/admin.js`:
  Updating rails-ujs, no real conflict, but a comment to close to changed
  code. Various glitch-soc-only files have been updated to match those changes,
  though.
- `package.json`:
  No real conflict, just an additional dependency in glitch-soc that was too
  close to something updated upstream. Took upstream's changes.
Diffstat (limited to 'lib/paperclip/attachment_extensions.rb')
-rw-r--r--lib/paperclip/attachment_extensions.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/paperclip/attachment_extensions.rb b/lib/paperclip/attachment_extensions.rb
new file mode 100644
index 000000000..3b308af5f
--- /dev/null
+++ b/lib/paperclip/attachment_extensions.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+module Paperclip
+  module AttachmentExtensions
+    # We overwrite this method to support delayed processing in
+    # Sidekiq. Since we process the original file to reduce disk
+    # usage, and we still want to generate thumbnails straight
+    # away, it's the only style we need to exclude
+    def process_style?(style_name, style_args)
+      if style_name == :original && instance.respond_to?(:delay_processing?) && instance.delay_processing?
+        false
+      else
+        style_args.empty? || style_args.include?(style_name)
+      end
+    end
+
+    def reprocess_original!
+      old_original_path = path(:original)
+      reprocess!(:original)
+      new_original_path = path(:original)
+
+      if new_original_path != old_original_path
+        @queued_for_delete << old_original_path
+        flush_deletes
+      end
+    end
+  end
+end
+
+Paperclip::Attachment.prepend(Paperclip::AttachmentExtensions)