class Dossier::StreamCSV

Attributes

collection[R]
headers[R]

Public Class Methods

new(collection, headers = nil) click to toggle source
# File lib/dossier/stream_csv.rb, line 7
def initialize(collection, headers = nil)
  @headers    = headers || collection.shift unless false === headers
  @collection = collection
end

Public Instance Methods

each() { |to_csv| ... } click to toggle source
# File lib/dossier/stream_csv.rb, line 12
def each
  yield headers.to_csv if headers?
  collection.each do |record|
    yield record.to_csv
  end
rescue => e
  if Rails.application.config.consider_all_requests_local
    yield e.message
    e.backtrace.each do |line|
      yield "#{line}\n"
    end
  else
    yield "We're sorry, but something went wrong." 
  end
end

Private Instance Methods

headers?() click to toggle source
# File lib/dossier/stream_csv.rb, line 30
def headers?
  headers.present?
end