lib/multi_mail/sender/base.rb
module MultiMail
module Sender
# Abstract class for outgoing email senders.
module Base
def self.included(subclass)
subclass.class_eval do
extend MultiMail::Service
end
end
attr_accessor :settings
attr_reader :tracking
# Initializes an outgoing email sender.
#
# @param [Hash] options required and optional arguments
def initialize(options = {})
@settings = {}
options.keys.each do |key| # based on Hash#symbolize_keys! from Rails
settings[(key.to_sym rescue key) || key] = options[key]
end
self.class.validate_options(settings, false)
@tracking = settings.delete(:track) || {}
end
end
end
end