diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2018-09-19 16:54:49 -0700 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2018-09-19 16:54:49 -0700 |
commit | c382d9b1800019010afcb441558cf5ebef4acbd3 (patch) | |
tree | 2c6a0d6709630329e08c69e5405b018c6aef3833 /lib | |
parent | 04e8ca0c95cdcb149624c540b29094a42a44e1e6 (diff) | |
download | rails-c382d9b1800019010afcb441558cf5ebef4acbd3.tar.gz rails-c382d9b1800019010afcb441558cf5ebef4acbd3.tar.bz2 rails-c382d9b1800019010afcb441558cf5ebef4acbd3.zip |
Extract method to encapsulate status tracking on inbound email
Diffstat (limited to 'lib')
-rw-r--r-- | lib/action_mailroom/mailbox.rb | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/lib/action_mailroom/mailbox.rb b/lib/action_mailroom/mailbox.rb index 3518449794..85b6662136 100644 --- a/lib/action_mailroom/mailbox.rb +++ b/lib/action_mailroom/mailbox.rb @@ -20,16 +20,12 @@ class ActionMailroom::Mailbox end def perform_processing - inbound_email.processing! - - run_callbacks :process do - process + track_status_of_inbound_email do + run_callbacks :process do + process + end end - - inbound_email.delivered! rescue => exception - inbound_email.failed! - # TODO: Include a reference to the inbound_email in the exception raised so error handling becomes easier rescue_with_handler(exception) || raise end @@ -37,4 +33,14 @@ class ActionMailroom::Mailbox def process # Overwrite in subclasses end + + private + def track_status_of_inbound_email + inbound_email.processing! + yield + inbound_email.delivered! + rescue => exception + inbound_email.failed! + raise + end end |