# File lib/faster_csv.rb, line 970 def <<( row ) # handle FasterCSV::Row objects row = row.fields if row.is_a? self.class::Row @io << row.map do |field| if field.nil? # reverse +nil+ fields as empty unquoted fields "" else field = String(field) # Stringify fields # reverse empty fields as empty quoted fields if field.empty? or field.count(%Q{\r\n#{@col_sep}"}).nonzero? %Q{"#{field.gsub('"', '""')}"} # escape quoted fields else field # unquoted field end end end.join(@col_sep) + @row_sep # add separators self # for chaining end