<< (FasterCSV)

    # File lib/faster_csv.rb, line 1450
      def <<(row)
        # make sure headers have been assigned
        if header_row? and [Array, String].include? @use_headers.class
          parse_headers  # won't read data for Array or String
          self << @headers if @write_headers
        end

        # Handle FasterCSV::Row objects and Hashes
        row = case row
              when self.class::Row then row.fields
              when Hash            then @headers.map { |header| row[header] }
              else                      row
              end

        @headers =  row if header_row?
        @lineno  += 1

        @io << row.map(&@quote).join(@col_sep) + @row_sep  # quote and separate

        self  # for chaining
      end