Class: AbstractReport
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
        show all
      
      
 
    
  
  
    
  
    
      - Includes:
 
      - ReportManager::Mixin
 
      
    
  
  
  
    - Defined in:
 
    - backend/app/model/reports/abstract_report.rb
 
  
  Instance Attribute Summary (collapse)
  
  
    
      Instance Method Summary
      (collapse)
    
    
  
  
  
  
  
  
  
  
  
  
  included
  Constructor Details
  
    
  
  
    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)
  
  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
    
      
      
      
  
  
    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[.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
 
     |