Module: ExportManager
- Defined in:
- lib/export_manager.rb,
lib/export_manager/engine.rb,
lib/export_manager/version.rb,
app/jobs/export_manager/application_job.rb,
app/models/export_manager/application_record.rb,
app/helpers/export_manager/application_helper.rb,
app/mailers/export_manager/application_mailer.rb,
app/models/export_manager/export_custom_query.rb,
lib/generators/export_manager/install_generator.rb,
app/controllers/export_manager/application_controller.rb,
app/controllers/export_manager/export_manager_controller.rb,
app/controllers/export_manager/export_custom_queries_controller.rb
Defined Under Namespace
Modules: ApplicationHelper, Generators
Classes: ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, Engine, ExportCustomQueriesController, ExportCustomQuery, ExportManagerController
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.generate_csv(records, columns) ⇒ Object
6
7
8
9
10
11
12
13
|
# File 'lib/export_manager.rb', line 6
def self.generate_csv(records, columns)
CSV.generate(headers: true) do |csv|
csv << columns.map(&:capitalize)
records.each do |record|
csv << columns.map { |column| record.public_send(column) }
end
end
end
|
.generate_excel(records, columns) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/export_manager.rb', line 15
def self.generate_excel(records, columns)
wb = Axlsx::Package.new
wb.workbook.add_worksheet(name: "Report") do |sheet|
sheet.add_row columns
records.each do |record|
sheet.add_row columns.map { |column| record.public_send(column) }
end
end
wb.to_stream.read
end
|
.generate_json(records, columns) ⇒ Object
27
28
29
30
|
# File 'lib/export_manager.rb', line 27
def self.generate_json(records, columns)
json_data = records.as_json(only: columns)
json_data.to_json
end
|
.generate_xml(records, columns) ⇒ Object
32
33
34
35
|
# File 'lib/export_manager.rb', line 32
def self.generate_xml(records, columns)
json_data = records.as_json(only: columns)
json_data.to_xml(root: "records", skip_types: true)
end
|