Improve default csv generation

This commit is contained in:
Thiago Youssef 2022-04-01 11:50:35 +03:00
parent e50501f13f
commit aef30eeb4d
5 changed files with 19 additions and 19 deletions

View file

@ -1,11 +1,11 @@
class CsvGenerator
class << self
def generate_csv(objects)
@class_name = objects.first.class
return default_generation(objects) unless custom_csv?
class_name = objects.first.class
return default_generation(objects) unless custom_csv?(class_name)
CSV.generate do |csv|
csv << @class_name.csv_header
csv << class_name.csv_header
objects.each { |object| csv << object.as_csv_row }
end
end
@ -14,21 +14,16 @@ class CsvGenerator
def default_generation(objects)
CSV.generate do |csv|
csv << @class_name.column_names
objects.each { |object| csv << object.attributes.values_at(*@class_name.column_names) }
csv << objects.column_names
objects.all.find_each { |object| csv << object.attributes.values_at(*objects.column_names) }
end
end
def custom_csv?
def custom_csv?(class_name)
[
Version::DomainVersion,
Version::ContactVersion,
Domain,
Contact,
Invoice,
Account,
AccountActivity
].include?(@class_name)
Version::DomainVersion, Version::ContactVersion, Domain,
Contact, Invoice, Account, AccountActivity
].include?(class_name)
end
end
end