module Mailthis::Mailer::InstanceMethods

Public Class Methods

new(&block) click to toggle source
# File lib/mailthis/mailer.rb, line 38
def initialize(&block)
  @nil_settings = nil
  @smtp_auth    = DEFAULT_AUTH
  @logger       = NullLogger.new

  self.instance_eval(&block) if block
end

Public Instance Methods

deliver(message = nil, &block) click to toggle source
# File lib/mailthis/mailer.rb, line 102
def deliver(message = nil, &block)
  raise NotImplementedError
end
from(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 76
def from(value = nil)
  @from = value if !value.nil?
  @from
end
logger(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 81
def logger(value = nil)
  @logger = value if !value.nil?
  @logger
end
smtp_auth(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 71
def smtp_auth(value = nil)
  @smtp_auth = value.to_s if !value.nil?
  @smtp_auth
end
smtp_helo(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 46
def smtp_helo(value = nil)
  @smtp_helo = value if !value.nil?
  @smtp_helo
end
smtp_port(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 56
def smtp_port(value = nil)
  @smtp_port = value if !value.nil?
  @smtp_port
end
smtp_pw(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 66
def smtp_pw(value = nil)
  @smtp_pw = value if !value.nil?
  @smtp_pw
end
smtp_server(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 51
def smtp_server(value = nil)
  @smtp_server = value if !value.nil?
  @smtp_server
end
smtp_user(value = nil) click to toggle source
# File lib/mailthis/mailer.rb, line 61
def smtp_user(value = nil)
  @smtp_user = value if !value.nil?
  @smtp_user
end
valid?() click to toggle source
# File lib/mailthis/mailer.rb, line 86
def valid?
  !@nil_settings.nil? && @nil_settings.empty?
end
validate!() click to toggle source
# File lib/mailthis/mailer.rb, line 90
def validate!
  @from = self.smtp_user if @from.nil?

  @nil_settings = []
  REQUIRED_SETTINGS.each{ |s| @nil_settings << s if self.send(s).nil? }
  if !self.valid?
    raise(MailerError, "missing required settings: #{@nil_settings.join(', ')}")
  end

  self # for chaining
end

Private Instance Methods

build_message(message, &block) click to toggle source
# File lib/mailthis/mailer.rb, line 112
def build_message(message, &block)
  (message || ::Mailthis::Message.new).tap do |msg|
    msg.instance_eval(&block) if block
  end
end
outgoing_email(message, &block) click to toggle source
# File lib/mailthis/mailer.rb, line 108
def outgoing_email(message, &block)
  OutgoingEmail.new(self, build_message(message, &block))
end