    # File lib/action_controller/vendor/rack-1.0/rack/response.rb, line 21
        def initialize(body=[], status=200, header={}, &block)
          @status = status
          @header = Utils::HeaderHash.new({"Content-Type" => "text/html"}.
                                          merge(header))

          @writer = lambda { |x| @body << x }
          @block = nil
          @length = 0

          @body = []

          if body.respond_to? :to_str
            write body.to_str
          elsif body.respond_to?(:each)
            body.each { |part|
              write part.to_s
            }
          else
            raise TypeError, "stringable or iterable required"
          end

          yield self  if block_given?
        end