Module: TN::CSVBuilder::InstanceMethods
- Defined in:
- lib/tn/csv_builder.rb
Instance Method Summary collapse
- #csv(io, flush_after_each_row: false) ⇒ Object
- #csv_headers ⇒ Object
- #generate_csv_tempfile(flush_after_each_row: false) {|file| ... } ⇒ Object
Instance Method Details
#csv(io, flush_after_each_row: false) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 ⇒ Object
40 41 42 |
# File 'lib/tn/csv_builder.rb', line 40 def csv_headers self.class.csv_headers end |
#generate_csv_tempfile(flush_after_each_row: false) {|file| ... } ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/tn/csv_builder.rb', line 32 def generate_csv_tempfile(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 |