class Chizuru::Consumer
Represents a consumer. Consumer
takes tweets from Source
, and generates status and passes it to deliverers.
Public Class Methods
new()
click to toggle source
Initializes an instance of Consumer
and starts loop.
# File lib/chizuru/consumer.rb, line 6 def initialize @deliverers = [] @queue = Queue.new Thread.new do while true data = @queue.deq dispatch(data) end end end
Public Instance Methods
add_deliverer(deliverer)
click to toggle source
Adds deliverer.
# File lib/chizuru/consumer.rb, line 18 def add_deliverer(deliverer) @deliverers << deliverer end
deliver(data)
click to toggle source
On delivering a status.
# File lib/chizuru/consumer.rb, line 28 def deliver(data) @queue.enq data end
dispatch(data)
click to toggle source
Dispatches a status to deliverers this has.
# File lib/chizuru/consumer.rb, line 33 def dispatch(data) @deliverers.each do |deliverer| Thread.new do deliverer.deliver(data) end end end
remove_deliverer(deliverer)
click to toggle source
Removes a deliverer.
# File lib/chizuru/consumer.rb, line 23 def remove_deliverer(deliverer) @deliverers.delete(deliverer) end