class MailHandler::Handler
main handler class for creating sender, receiver handlers
Constants
- CHECKER_TYPES
- NOTIFICATION_TYPES
- SENDER_TYPES
Attributes
receiver[RW]
sender[RW]
Public Instance Methods
handler(sender, receiver)
click to toggle source
# File lib/mailhandler.rb, line 116 def handler(sender, receiver) handler = new handler.sender = sender handler.receiver = receiver handler end
init_receiver(type = :folder, settings = {})
click to toggle source
# File lib/mailhandler.rb, line 102 def init_receiver(type = :folder, settings = {}) verify_type(type, CHECKER_TYPES) receiver = MailHandler::Receiver.new(CHECKER_TYPES[type].new) settings.each do |setting_name, setting_value| if receiver.checker.respond_to?(setting_name) receiver.checker.instance_variable_set("@#{setting_name}", setting_value) end end add_receiving_notifications(receiver, settings[:notifications]) @receiver = receiver end
init_sender(type = :postmark_api, settings = {})
click to toggle source
# File lib/mailhandler.rb, line 89 def init_sender(type = :postmark_api, settings = {}) verify_type(type, SENDER_TYPES) @sender = MailHandler::Sender.new(SENDER_TYPES[type].new) settings.each do |setting_name, setting_value| if @sender.dispatcher.respond_to?(setting_name) @sender.dispatcher.instance_variable_set("@#{setting_name}", setting_value) end end @sender end
Private Instance Methods
add_receiving_notifications(receiver, notifications)
click to toggle source
Add notifications, in case email receiving is delayed. When email is delayed, email notification can be sent or console status update.
@param [Receiving::Object] receiver @param [Array<Receiving::Notification::Class>] notifications
# File lib/mailhandler.rb, line 130 def add_receiving_notifications(receiver, notifications) return if notifications.nil? return unless (notifications - NOTIFICATION_TYPES.keys).empty? notifications.each { |n| receiver.add_observer(NOTIFICATION_TYPES[n].new) } end
verify_type(type, types)
click to toggle source
# File lib/mailhandler.rb, line 137 def verify_type(type, types) raise MailHandler::TypeError, "Unknown type - #{type}, possible options: #{types.keys}." unless types.key?(type) end