Sha256: 00b4f38c9b9b507f5cedb620d965e8c82dfd8c41472ec86bd4b914134e33a0b3

Contents?: true

Size: 924 Bytes

Versions: 3

Compression:

Stored size: 924 Bytes

Contents

module ActiveAdmin
  class CSVBuilder
    def build(controller, csv)
      @collection  = controller.send :find_collection, except: :pagination
      columns      = exec_columns controller.view_context
      options      = ActiveAdmin.application.csv_options.merge self.options
      bom          = options.delete :byte_order_mark
      column_names = options.delete(:column_names) { true }
      csv_options  = options.except :encoding_options, :humanize_name

      csv << bom if bom

      if column_names
        csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
      end

      (1..paginated_collection.total_pages).each do |page|
        paginated_collection(page).each do |resource|
          resource = controller.send :apply_decorator, resource
          csv << CSV.generate_line(build_row(resource, columns, options), csv_options)
        end
      end

      csv
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activeadmin-mongoid-1.0.0 lib/active_admin/mongoid/csv_builder.rb
activeadmin-mongoid-0.9.0 lib/active_admin/mongoid/csv_builder.rb
activeadmin-mongoid-0.7.0 lib/active_admin/mongoid/csv_builder.rb