In: |
csv.rb
|
Parent: | Object |
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'] # or csv.add_row [ CSV::Cell.new('c1', false), CSV::Cell.new('dummy', true), CSV::Cell.new('', false), CSV::Cell.new('"', false), CSV::Cell.new("\r\n", false) CSV::Cell.new('c2', false) ] ... ... end outfile.close
str_or_writable must handle ’<<(string)’.
# File csv.rb, line 680 def Writer.create(str_or_writable, col_sep = ?,, row_sep = nil) BasicWriter.new(str_or_writable, col_sep, row_sep) end
# File csv.rb, line 711 def initialize(dev) raise RuntimeError.new('do not instantiate this class directly') end
dump CSV stream to the device. argument must be an Array of String.
# File csv.rb, line 685 def <<(ary) row = ary.collect { |item| if item.is_a?(Cell) item elsif (item.nil?) Cell.new('', true) else Cell.new(item.to_s, false) end } CSV.generate_row(row, row.size, @dev, @col_sep, @row_sep) self end