Class: CSV::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/csv.rb

Overview

CSV formatted string/stream writer.

EXAMPLE

Write rows to 'csvout' file.

outfile = File.open('csvout', 'wb')
CSV::Writer.generate(outfile) do |csv|
  csv << ['c1', nil, '', '"', "\r\n", 'c2']
  ...
end

outfile.close

Direct Known Subclasses

BasicWriter

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create(str_or_writable, fs = ',', rs = nil) ⇒ Object

str_or_writable must handle ‘<<(string)’.



686
687
688
# File 'lib/csv.rb', line 686

def Writer.create(str_or_writable, fs = ',', rs = nil)
  BasicWriter.new(str_or_writable, fs, rs)
end

.generate(str_or_writable, fs = ',', rs = nil, &block) ⇒ Object

Given block is called with the writer instance. str_or_writable must handle ‘<<(string)’.



674
675
676
677
678
679
680
681
682
683
# File 'lib/csv.rb', line 674

def Writer.generate(str_or_writable, fs = ',', rs = nil, &block)
  writer = Writer.create(str_or_writable, fs, rs)
  if block
    yield(writer)
    writer.close
    nil
  else
    writer
  end
end

Instance Method Details

#<<(row) ⇒ Object Also known as: add_row

dump CSV stream to the device. argument must be an Array of String.



691
692
693
694
# File 'lib/csv.rb', line 691

def <<(row)
  CSV.generate_row(row, row.size, @dev, @fs, @rs)
  self
end

#closeObject



697
698
699
# File 'lib/csv.rb', line 697

def close
  terminate
end