Methods
C
E
M
N
R
Class Public methods
new(body, &block)
# File lib/rack/body_proxy.rb, line 3
def initialize(body, &block)
  @body = body
  @block = block
  @closed = false
end
Instance Public methods
close()
# File lib/rack/body_proxy.rb, line 17
def close
  return if @closed
  @closed = true
  begin
    @body.close if @body.respond_to? :close
  ensure
    @block.call
  end
end
closed?()
# File lib/rack/body_proxy.rb, line 27
def closed?
  @closed
end
each()

N.B. This method is a special case to address the bug described by #434. We are applying this special case for each only. Future bugs of this class will be handled by requesting users to patch their ruby implementation, to save adding too many methods in this class.

# File lib/rack/body_proxy.rb, line 35
def each
  @body.each { |body| yield body }
end
method_missing(method_name, *args, &block)
# File lib/rack/body_proxy.rb, line 39
def method_missing(method_name, *args, &block)
  super if :to_ary == method_name
  @body.__send__(method_name, *args, &block)
end
respond_to?(method_name, include_all=false)
# File lib/rack/body_proxy.rb, line 9
def respond_to?(method_name, include_all=false)
  case method_name
  when :to_ary, 'to_ary'
    return false
  end
  super or @body.respond_to?(method_name, include_all)
end