class SC::Rack::DeferrableBody

Public Class Methods

new(options = {}) click to toggle source
# File lib/sproutcore/rack/proxy.rb, line 37
def initialize(options = {})
  @options = options
end

Public Instance Methods

call(body) click to toggle source
# File lib/sproutcore/rack/proxy.rb, line 41
def call(body)
  body.each do |chunk|
    @body_callback.call(prepare_chunk(chunk))
  end
end
each(&blk) click to toggle source
# File lib/sproutcore/rack/proxy.rb, line 57
def each(&blk)
  @body_callback = blk
end
prepare_chunk(chunk) click to toggle source
# File lib/sproutcore/rack/proxy.rb, line 47
def prepare_chunk(chunk)
  if chunked?
    size = chunk.respond_to?(:bytesize) ? chunk.bytesize : chunk.length
    "#{size.to_s(16)}\r\n#{chunk}\r\n"
  else
    # Thin doesn't like null bodies
    chunk || ''
  end
end

Private Instance Methods

chunked?() click to toggle source
# File lib/sproutcore/rack/proxy.rb, line 63
def chunked?
  @options[:chunked]
end