class Dossier::Report
Attributes
options[R]
parent[RW]
query_results[R]
Public Class Methods
filename()
click to toggle source
# File lib/dossier/report.rb, line 23 def self.filename "#{report_name.parameterize}-report_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S-%Z')}" end
inherited(base)
click to toggle source
Calls superclass method
# File lib/dossier/report.rb, line 18 def self.inherited(base) super base.template = base.report_name end
new(options = {})
click to toggle source
# File lib/dossier/report.rb, line 27 def initialize(options = {}) @options = options.dup.with_indifferent_access end
Public Instance Methods
display_column?(column)
click to toggle source
# File lib/dossier/report.rb, line 62 def display_column?(column) true end
dossier_client()
click to toggle source
# File lib/dossier/report.rb, line 66 def dossier_client Dossier.client end
format_column(column, value)
click to toggle source
# File lib/dossier/report.rb, line 58 def format_column(column, value) value end
format_header(header)
click to toggle source
# File lib/dossier/report.rb, line 54 def format_header(header) formatter.titleize(header.to_s) end
query()
click to toggle source
# File lib/dossier/report.rb, line 35 def query build_query unless defined?(@query) @query.to_s end
raw_results()
click to toggle source
# File lib/dossier/report.rb, line 45 def raw_results execute unless query_results @raw_results ||= Result::Unformatted.new(query_results, self) end
renderer()
click to toggle source
# File lib/dossier/report.rb, line 70 def renderer @renderer ||= Renderer.new(self) end
results()
click to toggle source
# File lib/dossier/report.rb, line 40 def results execute unless query_results @results ||= Result::Formatted.new(query_results, self) end
run()
click to toggle source
# File lib/dossier/report.rb, line 50 def run tap { execute } end
sql()
click to toggle source
# File lib/dossier/report.rb, line 31 def sql raise NotImplementedError, "`sql` method must be defined by each report" end
Private Instance Methods
build_query()
click to toggle source
# File lib/dossier/report.rb, line 78 def build_query run_callbacks(:build_query) { @query = Dossier::Query.new(self) } end
execute()
click to toggle source
# File lib/dossier/report.rb, line 82 def execute build_query run_callbacks :execute do self.query_results = dossier_client.execute(query, self.class.name) end end
query_results=(query_results)
click to toggle source
# File lib/dossier/report.rb, line 89 def query_results=(query_results) @query_results = query_results.freeze end