aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailbox/app/models/action_mailbox/inbound_email.rb
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-12-26 16:18:42 -0500
committerGeorge Claghorn <george@basecamp.com>2018-12-26 16:18:42 -0500
commit6c168aaffb37c62dee6c895a22e240e5552be669 (patch)
treeb081b79a1088d9bc2bad0ee9f85fd4d7e5cc3638 /actionmailbox/app/models/action_mailbox/inbound_email.rb
parent11a8ba12723c919397c8ccc0b4cf2e9f50da99ed (diff)
downloadrails-6c168aaffb37c62dee6c895a22e240e5552be669.tar.gz
rails-6c168aaffb37c62dee6c895a22e240e5552be669.tar.bz2
rails-6c168aaffb37c62dee6c895a22e240e5552be669.zip
Nest Action Mailbox classes in the API docs
Diffstat (limited to 'actionmailbox/app/models/action_mailbox/inbound_email.rb')
-rw-r--r--actionmailbox/app/models/action_mailbox/inbound_email.rb70
1 files changed, 36 insertions, 34 deletions
diff --git a/actionmailbox/app/models/action_mailbox/inbound_email.rb b/actionmailbox/app/models/action_mailbox/inbound_email.rb
index 88df7a929a..fbf75a6080 100644
--- a/actionmailbox/app/models/action_mailbox/inbound_email.rb
+++ b/actionmailbox/app/models/action_mailbox/inbound_email.rb
@@ -2,44 +2,46 @@
require "mail"
-# The `InboundEmail` is an Active Record that keeps a reference to the raw email stored in Active Storage
-# and tracks the status of processing. By default, incoming emails will go through the following lifecycle:
-#
-# * Pending: Just received by one of the ingress controllers and scheduled for routing.
-# * Processing: During active processing, while a specific mailbox is running its #process method.
-# * Delivered: Successfully processed by the specific mailbox.
-# * Failed: An exception was raised during the specific mailbox's execution of the `#process` method.
-# * Bounced: Rejected processing by the specific mailbox and bounced to sender.
-#
-# Once the `InboundEmail` has reached the status of being either `delivered`, `failed`, or `bounced`,
-# it'll count as having been `#processed?`. Once processed, the `InboundEmail` will be scheduled for
-# automatic incineration at a later point.
-#
-# When working with an `InboundEmail`, you'll usually interact with the parsed version of the source,
-# which is available as a `Mail` object from `#mail`. But you can also access the raw source directly
-# using the `#source` method.
-#
-# Examples:
-#
-# inbound_email.mail.from # => 'david@loudthinking.com'
-# inbound_email.source # Returns the full rfc822 source of the email as text
-class ActionMailbox::InboundEmail < ActiveRecord::Base
- self.table_name = "action_mailbox_inbound_emails"
+module ActionMailbox
+ # The `InboundEmail` is an Active Record that keeps a reference to the raw email stored in Active Storage
+ # and tracks the status of processing. By default, incoming emails will go through the following lifecycle:
+ #
+ # * Pending: Just received by one of the ingress controllers and scheduled for routing.
+ # * Processing: During active processing, while a specific mailbox is running its #process method.
+ # * Delivered: Successfully processed by the specific mailbox.
+ # * Failed: An exception was raised during the specific mailbox's execution of the `#process` method.
+ # * Bounced: Rejected processing by the specific mailbox and bounced to sender.
+ #
+ # Once the `InboundEmail` has reached the status of being either `delivered`, `failed`, or `bounced`,
+ # it'll count as having been `#processed?`. Once processed, the `InboundEmail` will be scheduled for
+ # automatic incineration at a later point.
+ #
+ # When working with an `InboundEmail`, you'll usually interact with the parsed version of the source,
+ # which is available as a `Mail` object from `#mail`. But you can also access the raw source directly
+ # using the `#source` method.
+ #
+ # Examples:
+ #
+ # inbound_email.mail.from # => 'david@loudthinking.com'
+ # inbound_email.source # Returns the full rfc822 source of the email as text
+ class InboundEmail < ActiveRecord::Base
+ self.table_name = "action_mailbox_inbound_emails"
- include Incineratable, MessageId, Routable
+ include Incineratable, MessageId, Routable
- has_one_attached :raw_email
- enum status: %i[ pending processing delivered failed bounced ]
+ has_one_attached :raw_email
+ enum status: %i[ pending processing delivered failed bounced ]
- def mail
- @mail ||= Mail.from_source(source)
- end
+ def mail
+ @mail ||= Mail.from_source(source)
+ end
- def source
- @source ||= raw_email.download
- end
+ def source
+ @source ||= raw_email.download
+ end
- def processed?
- delivered? || failed? || bounced?
+ def processed?
+ delivered? || failed? || bounced?
+ end
end
end