Class: AbstractReport

Inherits:
Object
  • Object
show all
Includes:
ReportManager::Mixin
Defined in:
backend/app/model/reports/abstract_report.rb

Direct Known Subclasses

CreatedAccessionsReport, RepositoryReport, UnprocessedAccessionsReport

Instance Attribute Summary (collapse)

Instance Method Summary (collapse)

Methods included from ReportManager::Mixin

included

Constructor Details

- (AbstractReport) initialize(params)

Returns a new instance of AbstractReport



10
11
12
13
14
15
16
# File 'backend/app/model/reports/abstract_report.rb', line 10

def initialize(params)
  # sanity check, please. 
  params = params.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
  @repo_id = params[:repo_id] if params.has_key?(:repo_id) && params[:repo_id] != ""
  @format = params[:format] if params.has_key?(:format) && params[:format] != "" 
  @params = params 
end

Instance Attribute Details

- (Object) format

Returns the value of attribute format



7
8
9
# File 'backend/app/model/reports/abstract_report.rb', line 7

def format
  @format
end

- (Object) params

Returns the value of attribute params



8
9
10
# File 'backend/app/model/reports/abstract_report.rb', line 8

def params
  @params
end

- (Object) repo_id

Returns the value of attribute repo_id



6
7
8
# File 'backend/app/model/reports/abstract_report.rb', line 6

def repo_id
  @repo_id
end

Instance Method Details

- (Object) each



50
51
52
53
54
55
56
57
58
59
60
61
# File 'backend/app/model/reports/abstract_report.rb', line 50

def each
  DB.open do |db|
    dataset = query(db)
    dataset = scope_by_repo_id(dataset) if @repo_id
    dataset.each do |row|
      yield(Hash[headers.map { |h|
        val = (processor.has_key?(h))?processor[h].call(row):row[h.intern]
        [h, val]
      }])
    end
  end
end

- (Object) get_binding



18
19
20
# File 'backend/app/model/reports/abstract_report.rb', line 18

def get_binding
  binding
end

- (Object) layout



34
35
36
# File 'backend/app/model/reports/abstract_report.rb', line 34

def layout
  AppConfig[:report_page_layout]
end

- (Object) processor



38
39
40
# File 'backend/app/model/reports/abstract_report.rb', line 38

def processor
  {}
end

- (Object) query(db)



42
43
44
# File 'backend/app/model/reports/abstract_report.rb', line 42

def query(db)
  raise "Please specific a query to return your reportable results"
end

- (Object) report



26
27
28
# File 'backend/app/model/reports/abstract_report.rb', line 26

def report
  self
end

- (Object) scope_by_repo_id(dataset)



46
47
48
# File 'backend/app/model/reports/abstract_report.rb', line 46

def scope_by_repo_id(dataset)
  dataset.where(:repo_id => @repo_id)
end

- (Object) template



30
31
32
# File 'backend/app/model/reports/abstract_report.rb', line 30

def template
  :'reports/_listing'
end

- (Object) title



22
23
24
# File 'backend/app/model/reports/abstract_report.rb', line 22

def title
  self.class.name
end