class Skyline::Body
Public Class Methods
new()
click to toggle source
# File lib/skyline/body.rb, line 5 def initialize @queue = [] # Make sure to flush out the queue before closing the connection callback { flush } end
Public Instance Methods
call(body)
click to toggle source
# File lib/skyline/body.rb, line 12 def call(body) @queue << body schedule_dequeue end
closed?()
click to toggle source
# File lib/skyline/body.rb, line 22 def closed? @deferred_status != :unknown end
each(&blk)
click to toggle source
# File lib/skyline/body.rb, line 17 def each &blk @body_callback = blk schedule_dequeue end
flush()
click to toggle source
# File lib/skyline/body.rb, line 26 def flush return unless @body_callback until @queue.empty? Array(@queue.shift).each {|chunk| @body_callback.call(chunk) } end end
schedule_dequeue()
click to toggle source
# File lib/skyline/body.rb, line 34 def schedule_dequeue return unless @body_callback EventMachine.next_tick do next unless body = @queue.shift Array(body).each {|chunk| @body_callback.call(chunk) } schedule_dequeue unless @queue.empty? end end