class ActiveModel::CsvArraySerializer

Public Class Methods

new(objects, options = {}) click to toggle source
# File lib/active_model/csv_array_serializer.rb, line 6
def initialize(objects, options = {})
  @each_serializer = options[:each_serializer]
  @objects = objects
  @options = options
end

Public Instance Methods

to_csv() click to toggle source
# File lib/active_model/csv_array_serializer.rb, line 12
def to_csv
  serializer = @each_serializer || ActiveModel::CsverizerFactory
  serializer = serializer.new(@objects.first, @options)
  options_hash = @options.slice(:serializer)

  CSV.generate do |csv|
    csv << serializer.attribute_names
    serializer = @each_serializer || ActiveModel::CsverizerFactory

    @objects.each do |record|
      serializer.new(record, options_hash).to_a.each { |record| csv << record }
    end
  end
end