class Thin::DeferrableBody
Based on version from James Tucker <raggi@rubyforge.org>
Public Class Methods
new()
click to toggle source
# File lib/message_bus/rack/thin_ext.rb, line 8 def initialize @queue = [] end
Public Instance Methods
call(body)
click to toggle source
# File lib/message_bus/rack/thin_ext.rb, line 12 def call(body) @queue << body schedule_dequeue end
each(&blk)
click to toggle source
# File lib/message_bus/rack/thin_ext.rb, line 17 def each(&blk) @body_callback = blk schedule_dequeue end
Private Instance Methods
schedule_dequeue()
click to toggle source
# File lib/message_bus/rack/thin_ext.rb, line 23 def schedule_dequeue return unless @body_callback ::EM.next_tick do next unless body = @queue.shift body.each do |chunk| @body_callback.call(chunk) end schedule_dequeue unless @queue.empty? end end