1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
# encoding: utf-8
# frozen_string_literal: true
#
# Thanks to Nicolas Fouché for this wrapper
#
require 'singleton'
module Mail
# The Configuration class is a Singleton used to hold the default
# configuration for all Mail objects.
#
# Each new mail object gets a copy of these values at initialization
# which can be overwritten on a per mail object basis.
class Configuration
include Singleton
def initialize
@delivery_method = nil
@retriever_method = nil
super
end
def delivery_method(method = nil, settings = {})
return @delivery_method if @delivery_method && method.nil?
@delivery_method = lookup_delivery_method(method).new(settings)
end
def lookup_delivery_method(method)
case method.is_a?(String) ? method.to_sym : method
when nil
Mail::SMTP
when :smtp
Mail::SMTP
when :sendmail
Mail::Sendmail
when :exim
Mail::Exim
when :file
Mail::FileDelivery
when :smtp_connection
Mail::SMTPConnection
when :test
Mail::TestMailer
else
method
end
end
def retriever_method(method = nil, settings = {})
return @retriever_method if @retriever_method && method.nil?
@retriever_method = lookup_retriever_method(method).new(settings)
end
def lookup_retriever_method(method)
case method
when nil
Mail::POP3
when :pop3
Mail::POP3
when :imap
Mail::IMAP
when :test
Mail::TestRetriever
else
method
end
end
def param_encode_language(value = nil)
value ? @encode_language = value : @encode_language ||= 'en'
end
end
end
|