class CsvComposer::Writer

Public Instance Methods

write(header_processor, item_processor, collection, columns_mapping, opts = {}) click to toggle source
# File lib/csv_composer/writer.rb, line 6
def write(header_processor, item_processor, collection, columns_mapping, opts = {})
  CSV.generate do |csv|
    headers = header_processor.process(columns_mapping, opts)
    if headers
      csv << headers.compact
      opts[:headers] = headers # We are adding the headers in case you need them to process your items
    end
    write_content(csv, item_processor, columns_mapping, collection, opts)
  end
end

Private Instance Methods

write_content(csv, item_processor, columns_mapping, collection, opts) click to toggle source
# File lib/csv_composer/writer.rb, line 19
def write_content(csv, item_processor, columns_mapping, collection, opts)
  collection.each do |item|
    row_components = item_processor.process_value(item, columns_mapping, opts)
    csv << row_components.compact
  end
end