refactored ReportCache.process a little more... - reportable - Fork of reportable required by WarVox, from hdm/reportable.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit a52fc4fb93ca12d16bc1f019de403d141e0c63a2
(DIR) parent dea59962791f1628977ef04d95787cede7bd5fab
(HTM) Author: Marco Otte-Witte <marco.otte-witte@simplabs.com>
Date: Thu, 15 Jan 2009 12:20:26 +0100
refactored ReportCache.process a little more...
Diffstat:
M lib/kvlr/reports_as_sparkline/repo… | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/report_cache.rb b/lib/kvlr/reports_as_sparkline/report_cache.rb
@@ -10,19 +10,7 @@ module Kvlr #:nodoc:
cached_data = []
last_reporting_period_to_read = ReportingPeriod.first(options[:grouping], options[:limit])
if cache
- cached_data = self.find(
- :all,
- :conditions => [
- 'model_name = ? AND report_name = ? AND grouping = ? AND aggregation = ? AND reporting_period >= ?',
- report.klass.to_s,
- report.name.to_s,
- options[:grouping].identifier.to_s,
- report.aggregation.to_s,
- last_reporting_period_to_read.date_time
- ],
- :limit => options[:limit],
- :order => 'reporting_period ASC'
- )
+ cached_data = find_cached_data(report, options, last_reporting_period_to_read)
last_reporting_period_to_read = ReportingPeriod.new(options[:grouping], cached_data.last.reporting_period).next unless cached_data.empty?
end
new_data = yield(last_reporting_period_to_read.date_time)
@@ -63,6 +51,22 @@ module Kvlr #:nodoc:
)
end
+ def self.find_cached_data(report, options, last_reporting_period_to_read)
+ self.find(
+ :all,
+ :conditions => [
+ 'model_name = ? AND report_name = ? AND grouping = ? AND aggregation = ? AND reporting_period >= ?',
+ report.klass.to_s,
+ report.name.to_s,
+ options[:grouping].identifier.to_s,
+ report.aggregation.to_s,
+ last_reporting_period_to_read.date_time
+ ],
+ :limit => options[:limit],
+ :order => 'reporting_period ASC'
+ )
+ end
+
end
end