Module: RedisMail
- Extended by:
- RedisMail
- Included in:
- RedisMail
- Defined in:
- lib/redis_mail.rb,
lib/redis_mail/railtie.rb,
lib/redis_mail/version.rb,
lib/redis_mail/deliverer.rb
Defined Under Namespace
Classes: Deliverer, Railtie
Constant Summary
collapse
- VERSION =
"0.8.1"
Instance Method Summary
collapse
Instance Method Details
#clear_all ⇒ Object
22
23
24
25
26
|
# File 'lib/redis_mail.rb', line 22
def clear_all
mailboxes.reduce(false) do |cleared,mailbox|
clear_mailbox(mailbox) || cleared
end
end
|
#clear_mailbox(recipient) ⇒ Object
17
18
19
20
|
# File 'lib/redis_mail.rb', line 17
def clear_mailbox(recipient)
redis.del mailbox_key(recipient)
redis.srem :mailboxes, recipient
end
|
#deliver(recipient, message) ⇒ Object
50
51
52
53
|
# File 'lib/redis_mail.rb', line 50
def deliver(recipient, message)
redis.sadd :mailboxes, recipient
redis.rpush mailbox_key(recipient), message
end
|
#deliveries ⇒ Object
36
37
38
|
# File 'lib/redis_mail.rb', line 36
def deliveries
mailboxes.map{|recipient| deliveries_to(recipient)}.flatten
end
|
#deliveries_count ⇒ Object
40
41
42
43
44
|
# File 'lib/redis_mail.rb', line 40
def deliveries_count
mailboxes.reduce(0){|sum, recipient|
sum + redis.llen(mailbox_key(recipient))
}
end
|
#deliveries_count_to(recipient) ⇒ Object
46
47
48
|
# File 'lib/redis_mail.rb', line 46
def deliveries_count_to(recipient)
redis.llen(mailbox_key(recipient))
end
|
#deliveries_to(recipient) ⇒ Object
32
33
34
|
# File 'lib/redis_mail.rb', line 32
def deliveries_to(recipient)
redis.lrange mailbox_key(recipient), 0, -1
end
|
#mailboxes ⇒ Object
28
29
30
|
# File 'lib/redis_mail.rb', line 28
def mailboxes
redis.smembers :mailboxes
end
|
#redis ⇒ Object
12
13
14
15
|
# File 'lib/redis_mail.rb', line 12
def redis
raise "RedisMail.redis must be set to a Redis connection" unless @redis
@redis
end
|
#redis=(server) ⇒ Object
8
9
10
|
# File 'lib/redis_mail.rb', line 8
def redis=(server)
@redis = Redis::Namespace.new(:redis_mail, redis: server)
end
|