module MonkeyMailer

Constants

VERSION

Public Class Methods

adapter() click to toggle source
# File lib/monkey-mailer/adapter.rb, line 7
def self.adapter
  @@adapter ||= register_adapter
end
configuration() click to toggle source
# File lib/monkey-mailer/config.rb, line 3
def self.configuration
  @@configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/monkey-mailer/config.rb, line 7
def self.configure
  yield configuration
end
extended(base) click to toggle source
# File lib/monkey-mailer.rb, line 12
def self.extended(base)
  base.extend(Fallen)
end
find_and_deliver() click to toggle source
# File lib/monkey-mailer.rb, line 19
def self.find_and_deliver
  emails = []

  #Urgent emails
  emails.concat loader.find_emails(:urgent, MonkeyMailer.configuration.urgent_quota)

  if(@@normal_sleep == configuration.normal_sleep)
    emails.concat loader.find_emails(:normal, MonkeyMailer.configuration.normal_quota)
    @@normal_sleep = 0
  else
    @@normal_sleep += 1
  end

  if(@@low_sleep == configuration.low_sleep)
    emails.concat loader.find_emails(:low, MonkeyMailer.configuration.low_quota)
    @@low_sleep = 0
  else
    @@low_sleep += 1
  end

  send_emails(emails)
end
loader() click to toggle source
# File lib/monkey-mailer/loader.rb, line 5
def self.loader
  @@loader ||= register_loader
end
reset_adapter() click to toggle source
# File lib/monkey-mailer/adapter.rb, line 11
def self.reset_adapter
  @@adapter = nil
end
reset_loader() click to toggle source
# File lib/monkey-mailer/loader.rb, line 9
def self.reset_loader
  @@loader = nil
end
send_emails(emails) click to toggle source
# File lib/monkey-mailer/adapter.rb, line 15
def self.send_emails(emails)
  emails.each do |email|
    begin
      adapter.send_email(email)
      loader.delete_email(email)
    rescue DeliverError => e
      puts e.message
      puts e.backtrace
    end
  end
end

Private Class Methods

register_adapter() click to toggle source
# File lib/monkey-mailer/adapter.rb, line 30
def self.register_adapter
  @@adapter = MonkeyMailer.configuration.adapter.new(MonkeyMailer.configuration.adapter_options)
end
register_loader() click to toggle source
# File lib/monkey-mailer/loader.rb, line 14
def self.register_loader
  @@loader = MonkeyMailer.configuration.loader.new(MonkeyMailer.configuration.loader_options)
end

Public Instance Methods

run() click to toggle source
# File lib/monkey-mailer.rb, line 42
def run
  while running?
    MonkeyMailer.find_and_deliver
    sleep MonkeyMailer.configuration.sleep
  end
end