module PostmasterGeneral

Public Class Methods

log_deliveries(path) { || ... } click to toggle source

logs mail deliveries performed within the specified block to the specified path the path is appended to the previously configured log_directory

# File lib/postmaster_general.rb, line 18
def self.log_deliveries(path, &block)
  before_index = ActionMailer::Base.deliveries.size - 1
  before_index = 0 if before_index < 0

  yield

  log_path = File.join(log_directory, path)

  FileUtils.mkdir_p(File.dirname(log_path))
  FileUtils.rm_f(log_path)

  ActionMailer::Base.deliveries[before_index..-1].each do |mail|
    File.open(log_path, "w+") do |f|
      f << "==================\r\n"
      f << (mail.encoded.respond_to?(:force_encoding) ? mail.encoded.force_encoding("UTF-8") : mail.encoded)
      f << "\r\n==================\r\n"
    end
  end
end
log_directory() click to toggle source

returns the log directory configured previously

# File lib/postmaster_general.rb, line 12
def self.log_directory
  configatron.postmaster_general.log_directory
end
log_directory=(path) click to toggle source

sets the log directory for actionmailer logging

# File lib/postmaster_general.rb, line 7
def self.log_directory=(path)
  configatron.postmaster_general.log_directory = path
end