Module: Polyrun::Export::Csv
- Defined in:
- lib/polyrun/export/csv.rb
Overview
RFC-style CSV field escaping for report exports.
Class Method Summary collapse
Class Method Details
.escape_field(value) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/polyrun/export/csv.rb', line 7 def escape_field(value) string = value.nil? ? "" : value.to_s if string.match?(/[",\r\n]/) "\"#{string.gsub('"', '""')}\"" else string end end |
.generate(headers, rows) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/polyrun/export/csv.rb', line 16 def generate(headers, rows) lines = [headers.map { |header| escape_field(header) }.join(",")] rows.each do |row| lines << Array(row).map { |cell| escape_field(cell) }.join(",") end lines.join("\n") + "\n" end |