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