module TN::CSVBuilder::InstanceMethods

Public Instance Methods

csv(io, flush_after_each_row: false) click to toggle source
# File lib/tn/csv_builder.rb, line 14
def csv(io, flush_after_each_row: false)
  csv_header_row ||= CSV::Row.new(csv_headers.keys, csv_headers.values, true)
  csv = CSV.new(io)
  csv << csv_header_row
  csv_data do |row|
    row_data = []
    csv_headers.each do |key, _|
      row_data << row[key]
    end
    row.each do |key, _|
      fail "#{key} not a valid csv header!" unless csv_headers.key?(key)
    end
    csv << CSV::Row.new(csv_headers, row_data)
    csv.flush if flush_after_each_row
  end
  csv
end
csv_headers() click to toggle source
# File lib/tn/csv_builder.rb, line 41
def csv_headers
  self.class.csv_headers
end
file(flush_after_each_row: false) { |file| ... } click to toggle source
# File lib/tn/csv_builder.rb, line 32
def file(flush_after_each_row: false)
  file = TN::TempFile.new
  csv(file, flush_after_each_row: flush_after_each_row)
  file.close
  yield(file) if block_given?
  file
end
Also aliased as: generate_csv_tempfile
generate_csv_tempfile(flush_after_each_row: false)
Alias for: file