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
Class Method Summary collapse
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.
Class Method Details
.included(subclass) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/multi_mail/receiver/base.rb', line 8 def self.included(subclass) subclass.class_eval do extend MultiMail::Service extend MultiMail::Receiver::Base::ClassMethods end end |
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 |