aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/action_mailbox/inbound_email/incineratable.rb
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-10-17 10:38:51 -0400
committerGeorge Claghorn <george@basecamp.com>2018-10-17 10:38:51 -0400
commit8973fbcf08fcbfb7af8ad9fd9465ff3c2de06437 (patch)
tree040e685506501fcc5ddf185748a34d6497ab3b0e /app/models/action_mailbox/inbound_email/incineratable.rb
parent47445511862a4c9979fb46889011edf585391091 (diff)
downloadrails-8973fbcf08fcbfb7af8ad9fd9465ff3c2de06437.tar.gz
rails-8973fbcf08fcbfb7af8ad9fd9465ff3c2de06437.tar.bz2
rails-8973fbcf08fcbfb7af8ad9fd9465ff3c2de06437.zip
Simplify incineration
Diffstat (limited to 'app/models/action_mailbox/inbound_email/incineratable.rb')
-rw-r--r--app/models/action_mailbox/inbound_email/incineratable.rb23
1 files changed, 5 insertions, 18 deletions
diff --git a/app/models/action_mailbox/inbound_email/incineratable.rb b/app/models/action_mailbox/inbound_email/incineratable.rb
index 364231a443..198846422c 100644
--- a/app/models/action_mailbox/inbound_email/incineratable.rb
+++ b/app/models/action_mailbox/inbound_email/incineratable.rb
@@ -2,27 +2,14 @@ module ActionMailbox::InboundEmail::Incineratable
extend ActiveSupport::Concern
included do
- before_update :remember_to_incinerate_later
- after_update_commit :incinerate_later, if: :incinerating_later?
+ after_update_commit :incinerate_later, if: -> { status_previously_changed? && processed? }
+ end
+
+ def incinerate_later
+ ActionMailbox::IncinerationJob.schedule self
end
def incinerate
Incineration.new(self).run
end
-
- private
- # TODO: Use enum change tracking once merged into Active Support
- def remember_to_incinerate_later
- if status_changed? && (delivered? || bounced? || failed?)
- @incinerating_later = true
- end
- end
-
- def incinerating_later?
- @incinerating_later ||= false
- end
-
- def incinerate_later
- ActionMailbox::InboundEmail::IncinerationJob.schedule(self)
- end
end