mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
20 lines
636 B
Ruby
20 lines
636 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Ensure that the `InboundEmail` is automatically scheduled for later incineration if the status has been
|
|
# changed to `processed`. The later incineration will be invoked at the time specified by the
|
|
# `ActionMailbox.incinerate_after` time using the `IncinerationJob`.
|
|
module ActionMailbox::InboundEmail::Incineratable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
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
|
|
end
|