WaveBox
A redis-based notification system
Example
require 'wave_box'
class User
include ::WaveBox::GenerateWave
include ::WaveBox::ReceiveWave
can_generate_wave :name => "message",
:redis => :wave_redis_instance,
:expire => 60 * 60 * 24 * 7, # One week
:max_size => 20,
:id => :wave_box_id
can_receive_wave :name => "message",
:redis => :wave_redis_instance,
:expire => 60 * 60 * 24 * 7, # One week
:max_size => 20,
:id => :wave_box_id
def wave_redis_instance
Redis.new # return a redis instance
end
def wave_box_id
object_id
end
end
sender = User.new
=> #<User:0x007f85631b9a50>
receiver = User.new
=> #<User:0x007f85631cf940>
# Send a wave from sender to receiver
sender.generate_message "hi", receiver
# Find all message waves in sender's outbox
sender.generated_message_after(0)
=> ["hi"]
# Find all message waves in receiver's inbox
receiver.received_message_after(0)
=> ["hi"]
License
Ruby on Rails is released under the License[http://www.opensource.org/licenses/MIT].