def update_current_request(request_data, &block) # :yields: request
      if alternative_header_line?(request_data)
        if @current_request
          @current_request << request_data
        else
          @current_request = @file_format.request(request_data)
        end
      elsif header_line?(request_data)
        if @current_request
          case options[:parse_strategy]
          when 'assume-correct'
            handle_request(@current_request, &block)
            @current_request = @file_format.request(request_data)
          when 'cautious'
            @skipped_lines += 1
            warn(:unclosed_request, "Encountered header line (#{request_data[:line_definition].name.inspect}), but previous request was not closed!")
            @current_request = nil # remove all data that was parsed, skip next request as well.
          end
        elsif footer_line?(request_data)
          handle_request(@file_format.request(request_data), &block)
        else
          @current_request = @file_format.request(request_data)
        end
      else
        if @current_request
          @current_request << request_data
          if footer_line?(request_data)
            handle_request(@current_request, &block) # yield @current_request
            @current_request = nil
          end
        else
          @skipped_lines += 1
          warn(:no_current_request, "Parseable line (#{request_data[:line_definition].name.inspect}) found outside of a request!")
        end
      end
    end
def update_current_request(request_data, &block) # :yields: request
      if alternative_header_line?(request_data)
        if @current_request
          @current_request << request_data
        else
          @current_request = @file_format.request(request_data)
        end
      elsif header_line?(request_data)
        if @current_request
          case options[:parse_strategy]
          when 'assume-correct'
            handle_request(@current_request, &block)
            @current_request = @file_format.request(request_data)
          when 'cautious'
            @skipped_lines += 1
            warn(:unclosed_request, "Encountered header line (#{request_data[:line_definition].name.inspect}), but previous request was not closed!")
            @current_request = nil # remove all data that was parsed, skip next request as well.
          end
        elsif footer_line?(request_data)
          handle_request(@file_format.request(request_data), &block)
        else
          @current_request = @file_format.request(request_data)
        end
      else
        if @current_request
          @current_request << request_data
          if footer_line?(request_data)
            handle_request(@current_request, &block) # yield @current_request
            @current_request = nil
          end
        else
          @skipped_lines += 1
          warn(:no_current_request, "Parseable line (#{request_data[:line_definition].name.inspect}) found outside of a request!")
        end
      end
    end
Combines the different lines of a request into a single Request object. It will start a
 new request when a header line is encountered en will emit the request when a footer line
 is encountered.

 Combining the lines is done using heuristics. Problems can occur in this process. The
 current parse strategy defines how these cases are handled.

 When using the 'assume-correct' parse strategy (default):
 - Every line that is parsed before a header line is ignored as it cannot be included in
   any request. It will emit a :no_current_request warning.
 - If a header line is found before the previous requests was closed, the previous request
   will be yielded and a new request will be started.

 When using the 'cautious' parse strategy:
 - Every line that is parsed before a header line is ignored as it cannot be included in
   any request. It will emit a :no_current_request warning.
 - A header line that is parsed before a request is closed by a footer line, is a sign of
   an unproperly ordered file. All data that is gathered for the request until then is
   discarded and the next request is ignored as well. An :unclosed_request warning is
   emitted.

 <tt>request_data</tt>:: A hash of data that was parsed from the last line.