class CSVUtils::CSVReport

Attributes

csv[R]
must_close[R]

Public Class Methods

new(csv, headers = nil, csv_options = {}, &block) click to toggle source
# File lib/csv_utils/csv_report.rb, line 7
def initialize(csv, headers = nil, csv_options = {}, &block)
  @csv =
    if csv.is_a?(String)
      @must_close = true
      mode = csv_options.delete(:mode) || 'wb'
      CSV.open(csv, mode, **csv_options)
    else
      @must_close = false
      csv
    end

  add_headers(headers) if headers

  generate(&block) if block
end

Public Instance Methods

<<(csv_row)
Alias for: append
add_headers(csv_row) click to toggle source
# File lib/csv_utils/csv_report.rb, line 38
def add_headers(csv_row)
  append(csv_row.is_a?(Array) ? csv_row : csv_row.csv_headers)
end
append(csv_row) click to toggle source
# File lib/csv_utils/csv_report.rb, line 28
def append(csv_row)
  @csv <<
    if csv_row.is_a?(Array)
      csv_row
    else
      csv_row.to_a
    end
end
Also aliased as: <<
close() click to toggle source
# File lib/csv_utils/csv_report.rb, line 42
def close
  @csv.close
end
generate() { |self| ... } click to toggle source
# File lib/csv_utils/csv_report.rb, line 23
def generate
  yield self
  close if @must_close
end