Class: MetaReports::Base
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- MetaReports::Base
- Defined in:
- app/models/meta_reports/base.rb
Direct Known Subclasses
Constant Summary collapse
- FORMATS =
Utility methods
%w[html pdf xlsx]- COLORS =
{ even: 'efefef', odd: 'ffffff', }
- @@inline_css =
true
Class Method Summary collapse
- .format_mask(format) ⇒ Object
- .formats_mask(*formats) ⇒ Object
-
.helpers ⇒ Object
Sorry, God doesn’t help self.helpers, which is why you need it.
- .test_report(params) ⇒ Object
Instance Method Summary collapse
- #displays_all_formats?(*formats) ⇒ Boolean
- #displays_any_format?(*formats) ⇒ Boolean
- #format?(format) ⇒ Boolean
- #formats ⇒ Object
- #formats=(formats) ⇒ Object
- #run(params) ⇒ Object
- #view ⇒ Object
Class Method Details
.format_mask(format) ⇒ Object
20 21 22 |
# File 'app/models/meta_reports/base.rb', line 20 def self.format_mask(format) 1 << (FORMATS.index(format.to_s) || -1) end |
.formats_mask(*formats) ⇒ Object
24 25 26 |
# File 'app/models/meta_reports/base.rb', line 24 def self.formats_mask(*formats) formats.inject(0) {|mask, format| mask | (1 << (FORMATS.index(format.to_s) || -1) )} end |
.helpers ⇒ Object
Sorry, God doesn’t help self.helpers, which is why you need it
76 77 78 |
# File 'app/models/meta_reports/base.rb', line 76 def self.helpers ApplicationController.helpers end |
.test_report(params) ⇒ Object
10 11 12 |
# File 'app/models/meta_reports/base.rb', line 10 def self.test_report(params) {title: 'Test Report', subtitle: 'this is a test report', tables: {'Table 1' => [['One','Two','Three'],[1,2,3]]}} end |
Instance Method Details
#displays_all_formats?(*formats) ⇒ Boolean
28 29 30 31 32 33 34 35 |
# File 'app/models/meta_reports/base.rb', line 28 def displays_all_formats?(*formats) has_all = true ([*formats] & FORMATS).each do |format| i = FORMATS.index(format.to_s) has_any = false if formats_mask[i] != 1 end has_all end |
#displays_any_format?(*formats) ⇒ Boolean
37 38 39 40 41 42 43 44 |
# File 'app/models/meta_reports/base.rb', line 37 def displays_any_format?(*formats) has_any = false ([*formats] & FORMATS).each do |format| i = FORMATS.index(format.to_s) has_any = true if formats_mask[i] == 1 end has_any end |
#format?(format) ⇒ Boolean
54 55 56 57 |
# File 'app/models/meta_reports/base.rb', line 54 def format?(format) i = FORMATS.index(format.to_s) i ? (formats_mask[i] == 1) : nil end |
#formats ⇒ Object
50 51 52 |
# File 'app/models/meta_reports/base.rb', line 50 def formats FORMATS.reject { |r| (formats_mask || 0)[FORMATS.index(r)].zero? } end |
#formats=(formats) ⇒ Object
46 47 48 |
# File 'app/models/meta_reports/base.rb', line 46 def formats=(formats) self.formats_mask = ([*formats] & FORMATS).inject(0) { |sum,r| sum += 1 << FORMATS.index(r) } end |
#run(params) ⇒ Object
59 60 61 62 63 64 |
# File 'app/models/meta_reports/base.rb', line 59 def run(params) report = ::MetaReports::Report.send(name, params) report[:id] = "report_#{name}" report[:report] = self report end |
#view ⇒ Object
66 67 68 |
# File 'app/models/meta_reports/base.rb', line 66 def view ActiveRecord::Base.connection.execute("UPDATE meta_reports_reports SET views = views + 1 WHERE id = #{id}") end |