19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/csvision/csv_helper.rb', line 19
def to_csv(options={ :headers => true, :batch_size => 100 })
options[:delimeter] ||= csv_delimeter
options[:separator] ||= csv_separator
options[:batch_size] ||= 100
unless self.count < 1
, csv_array = nil, []
self.find_each :batch_size => options[:batch_size] do |object|
unless self.body
||= object.csvize( object.attributes.only( *csv_only ).keys, options ) if csv_only && !csv_only.empty?
||= object.csvize( object.attributes.except( *csv_except ).keys, options ) if csv_except && !csv_except.empty?
csv_array << object.to_csv( options.merge(:headers => false) )
else
values = self.body.call object
||= object.csvize( self., options ) if self.
csv_array << object.csvize( values, options )
end
end
content = csv_array.join("\n")
return + "\n" + content if options[:headers]
content
end
end
|