Module: MultiMail::Receiver::Base
- Defined in:
- lib/multi_mail/receiver/base.rb
Overview
Abstract class for incoming email receivers.
The transform
instance method must be implemented in sub-classes. The
valid?
and spam?
instance methods may be implemented in sub-classes.
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Object
Initializes an incoming email receiver.
-
#process(raw) ⇒ Array<Mail::Message>
Ensures a request is authentic, parses it into a params hash, and transforms it into a list of messages.
-
#spam?(message) ⇒ Boolean
Returns whether a message is spam.
-
#transform(params) ⇒ Array<Mail::Message>
Transforms the content of a provider's webhook into a list of messages.
-
#valid?(params) ⇒ Boolean
Returns whether a request is authentic.
Instance Method Details
#initialize(options = {}) ⇒ Object
Initializes an incoming email receiver.
18 19 20 |
# File 'lib/multi_mail/receiver/base.rb', line 18 def initialize( = {}) self.class.() end |
#process(raw) ⇒ Array<Mail::Message>
Ensures a request is authentic, parses it into a params hash, and transforms it into a list of messages.
28 29 30 31 32 33 34 35 |
# File 'lib/multi_mail/receiver/base.rb', line 28 def process(raw) params = self.class.parse(raw) if valid?(params) transform(params) else raise ForgedRequest end end |
#spam?(message) ⇒ Boolean
Returns whether a message is spam.
57 58 59 |
# File 'lib/multi_mail/receiver/base.rb', line 57 def spam?() false end |
#transform(params) ⇒ Array<Mail::Message>
Transforms the content of a provider's webhook into a list of messages.
49 50 51 |
# File 'lib/multi_mail/receiver/base.rb', line 49 def transform(params) raise NotImplementedError end |
#valid?(params) ⇒ Boolean
Returns whether a request is authentic.
41 42 43 |
# File 'lib/multi_mail/receiver/base.rb', line 41 def valid?(params) true end |