Sha256: 11c35c2c332ab7022979bdb6bd2e86abcd6b8c840c7d5a626fcea93785d1d8cd
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
# Author:: A.K.M. Ashrafuzzaman (mailto:ashrafuzzaman.g2@gmail.com) # License:: MIT-LICENSE # The purpose of the helper module is to help controllers with the responders require 'csv' require 'query_report/report' require 'query_report/report_pdf' module QueryReport module Helper def reporter(query, options={}, &block) @report ||= QueryReport::Report.new(params, view_context, options) @report.query = query @report.instance_eval &block render_report(options) end def render_report(options) respond_to do |format| format.js { render 'query_report/list' } format.html { render 'query_report/list' } format.json { render json: @report.all_records } format.csv { send_data generate_csv_for_report(@report.all_records), :disposition => "attachment;" } format.pdf { send_data query_report_pdf_template_class(options).new(@report).to_pdf.render } end end def query_report_pdf_template_class(options) options = QueryReport.config.pdf_options.merge(options) if options[:template_class] @template_class ||= options[:template_class].to_s.constantize return @template_class end QueryReport::ReportPdf end def generate_csv_for_report(records) if records.size > 0 columns = records.first.keys CSV.generate do |csv| csv << columns records.each do |record| csv << record.values.collect { |val| val.kind_of?(String) ? view_context.strip_links(val) : val } end end else nil end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
query_report-1.0.4 | lib/query_report/helper.rb |
query_report-1.0.3 | lib/query_report/helper.rb |
query_report-1.0.2 | lib/query_report/helper.rb |