Module: MonkeyMailer
- Extended by:
- Fallen
- Defined in:
- lib/monkey-mailer.rb,
lib/monkey-mailer/email.rb,
lib/monkey-mailer/config.rb,
lib/monkey-mailer/loader.rb,
lib/monkey-mailer/adapter.rb,
lib/monkey-mailer/version.rb,
lib/monkey-mailer/adapters/smtp.rb,
lib/monkey-mailer/adapters/dummy.rb,
lib/monkey-mailer/adapters/mandrilapi.rb
Defined Under Namespace
Modules: Adapters, Loaders
Classes: Configuration, DeliverError, Email
Constant Summary
collapse
- VERSION =
"0.1.0"
- @@normal_sleep =
0
- @@low_sleep =
0
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.adapter ⇒ Object
7
8
9
|
# File 'lib/monkey-mailer/adapter.rb', line 7
def self.adapter
@@adapter ||= register_adapter
end
|
.configuration ⇒ Object
3
4
5
|
# File 'lib/monkey-mailer/config.rb', line 3
def self.configuration
@@configuration ||= Configuration.new
end
|
7
8
9
|
# File 'lib/monkey-mailer/config.rb', line 7
def self.configure
yield configuration
end
|
.extended(base) ⇒ Object
12
13
14
|
# File 'lib/monkey-mailer.rb', line 12
def self.extended(base)
base.extend(Fallen)
end
|
.find_and_deliver ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/monkey-mailer.rb', line 19
def self.find_and_deliver
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 ⇒ Object
5
6
7
|
# File 'lib/monkey-mailer/loader.rb', line 5
def self.loader
@@loader ||= register_loader
end
|
.reset_adapter ⇒ Object
11
12
13
|
# File 'lib/monkey-mailer/adapter.rb', line 11
def self.reset_adapter
@@adapter = nil
end
|
.reset_loader ⇒ Object
9
10
11
|
# File 'lib/monkey-mailer/loader.rb', line 9
def self.reset_loader
@@loader = nil
end
|
.send_emails(emails) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
|
# 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
|
Instance Method Details
#run ⇒ Object
42
43
44
45
46
47
|
# File 'lib/monkey-mailer.rb', line 42
def run
while running?
MonkeyMailer.find_and_deliver
sleep MonkeyMailer.configuration.sleep
end
end
|