Class: Dossier::Report

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Naming
Includes:
ActiveSupport::Callbacks
Defined in:
lib/dossier/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Report

Returns a new instance of Report.



10
11
12
# File 'lib/dossier/report.rb', line 10

def initialize(options = {})
  @options = options.dup.with_indifferent_access
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



8
9
10
# File 'lib/dossier/report.rb', line 8

def options
  @options
end

Instance Method Details

#dossier_clientObject



45
46
47
# File 'lib/dossier/report.rb', line 45

def dossier_client
  Dossier.client
end

#formatterObject



41
42
43
# File 'lib/dossier/report.rb', line 41

def formatter
  Dossier::Formatter
end

#queryObject



18
19
20
21
# File 'lib/dossier/report.rb', line 18

def query
  build_query unless defined?(@query)
  @query.to_s
end

#raw_resultsObject



28
29
30
31
# File 'lib/dossier/report.rb', line 28

def raw_results
  execute unless defined?(@raw_results)
  @raw_results
end

#resultsObject



23
24
25
26
# File 'lib/dossier/report.rb', line 23

def results
  execute unless defined?(@results)
  @results
end

#runObject



33
34
35
# File 'lib/dossier/report.rb', line 33

def run
  tap { execute }
end

#sqlObject

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/dossier/report.rb', line 14

def sql
  raise NotImplementedError, "`sql` method must be defined by each report"
end

#viewObject



37
38
39
# File 'lib/dossier/report.rb', line 37

def view
  self.class.name.sub(/Report\Z/, '').underscore
end