class Rack::Multipart::Parser

def parse(io)

def parse(io)
  outbuf = String.new
  read_data(io, outbuf)
  loop do
    status =
      case @state
      when :FAST_FORWARD
        handle_fast_forward
      when :CONSUME_TOKEN
        handle_consume_token
      when :MIME_HEAD
        handle_mime_head
      when :MIME_BODY
        handle_mime_body
      else # when :DONE
        return
      end
    read_data(io, outbuf) if status == :want_read
  end
end