def report_header(output)
      output.title('Request summary')

      output.with_style(cell_separator: false) do
        output.table({ width: 20 }, { font: :bold }) do |rows|
          source.processed_files.each do |f|
            rows << ['Processed File:', f]
          end
          rows << ['Parsed lines:',     source.parsed_lines]
          rows << ['Skipped lines:',    source.skipped_lines]
          rows << ['Parsed requests:',  source.parsed_requests]
          rows << ['Skipped requests:', source.skipped_requests]
          rows << ['Warnings:', @warnings_encountered.map { |(key, value)| "#{key}: #{value}" }.join(', ')] if has_warnings?
        end
      end
      output << "\n"
    end
def report_header(output)
      output.title('Request summary')

      output.with_style(cell_separator: false) do
        output.table({ width: 20 }, { font: :bold }) do |rows|
          source.processed_files.each do |f|
            rows << ['Processed File:', f]
          end
          rows << ['Parsed lines:',     source.parsed_lines]
          rows << ['Skipped lines:',    source.skipped_lines]
          rows << ['Parsed requests:',  source.parsed_requests]
          rows << ['Skipped requests:', source.skipped_requests]
          rows << ['Warnings:', @warnings_encountered.map { |(key, value)| "#{key}: #{value}" }.join(', ')] if has_warnings?
        end
      end
      output << "\n"
    end
Generate report header.
 <tt>output</tt> RequestLogAnalyzer::Output object to output to