lib/listings/base.rb in listings-0.1.14 vs lib/listings/base.rb in listings-0.1.15
- old
+ new
@@ -175,10 +175,16 @@
def format
(params[:format] || :html).to_sym
end
+ def export_each
+ self.items.each do |item|
+ yield item
+ end
+ end
+
def send_csv(controller)
csv_filename = self.export_filename(:csv)
controller.headers["X-Accel-Buffering"] = "no"
controller.headers["Cache-Control"] = "no-cache"
@@ -188,17 +194,22 @@
controller.headers.delete("Content-Length")
controller.response_body = Enumerator.new do |lines|
lines << self.columns.map { |c| c.human_name }.to_csv
- self.items.find_each do |item|
+ self.export_each do |item|
row = []
self.columns.each do |col|
row << col.value_for(item)
end
lines << row.to_csv
end
end
+ end
+
+ def send_xls(controller)
+ controller.headers["Content-Disposition"] = %(attachment; filename="#{self.export_filename(:xls)}")
+ controller.render 'listings/export'
end
def method_missing(m, *args, &block)
view_context.send(m, *args, &block)
end