Sha256: 594f63f656299ce01205040b57aac017148081c310505572297fb215a7ec991a

Contents?: true

Size: 485 Bytes

Versions: 2

Compression:

Stored size: 485 Bytes

Contents

module ControllerMixins::CsvInstanceMethods
  require 'csv'

  def to_csv(objects, skip_attributes=[], delimiter= ",")
    return "" if objects.blank?
    objects_class = objects.first.class
    filtered_columns = objects_class.column_names - skip_attributes
    CSV.generate do |csv|
      csv << filtered_columns
      objects.each do |object|
        csv << filtered_columns.collect { |a| object.attributes[a].blank? ? '' : "'#{object.attributes[a]}'" }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
it-logica-application-backbone-0.1.7 lib/controller_mixins/csv_instance_methods.rb
it-logica-application-backbone-0.1.6 lib/controller_mixins/csv_instance_methods.rb