44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/active_admin/csv_builder.rb', line 44
def build(controller, csv)
@collection = controller.send :find_collection, except: :pagination
columns = exec_columns controller.view_context
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
ActiveRecord::Base.uncached do
(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
end
csv
end
|