class Rack::BodyProxy
Public Class Methods
new(body, &block)
click to toggle source
# File lib/rack/body_proxy.rb, line 3 def initialize(body, &block) @body = body @block = block @closed = false end
Public Instance Methods
close()
click to toggle source
# 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?()
click to toggle source
# File lib/rack/body_proxy.rb, line 27 def closed? @closed end
each() { |body| ... }
click to toggle source
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)
click to toggle source
Calls superclass method
# 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)
click to toggle source
Calls superclass method
# 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