the Report#run method only accepts :conditions and _limit options - reportable - Fork of reportable required by WarVox, from hdm/reportable.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 2d19c69d72d105e1ceceef35ba963c309b477fb2
(DIR) parent 6a2014d4aef05d98e682c1f0db51caa6e885be45
(HTM) Author: marcoow <marco.otte-witte@simplabs.com>
Date: Fri, 5 Dec 2008 23:56:16 +0800
the Report#run method only accepts :conditions and _limit options
Signed-off-by: Marco Otte-Witte <marco.otte-witte@simplabs.com>
Diffstat:
M lib/kvlr/reports_as_sparkline/repo… | 9 ++++-----
M lib/kvlr/reports_as_sparkline/repo… | 3 ++-
M spec/other/cumulated_report_spec.rb | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
---
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/report.rb b/lib/kvlr/reports_as_sparkline/report.rb
@@ -11,7 +11,7 @@ module Kvlr #:nodoc:
@klass = klass
@name = name
@date_column_name = (options[:date_column_name] || 'created_at').to_s
- @value_column_name = (options[:value_column_name] || (options[:aggregation] != :sum ? 'id' : @name)).to_s
+ @value_column_name = (options[:value_column_name] || (options[:aggregation] != :sum ? 'id' : name)).to_s
@aggregation = options[:aggregation] || :count
@grouping = Grouping.new(options[:grouping] || :day)
@options = {
@@ -19,13 +19,12 @@ module Kvlr #:nodoc:
:conditions => options[:conditions] || ['']
}
@options.merge!(options)
- @options[:conditions][0].freeze
end
def run(options = {})
ensure_valid_options(options)
- options = @options.merge(options)
- ReportCache.cached_transaction(self, options[:limit]) do |begin_at|
+ ReportCache.cached_transaction(self, options, options.key?(:conditions)) do |begin_at|
+ options = @options.merge(options)
conditions = setup_conditions(begin_at, options[:conditions])
@klass.send(@aggregation,
@value_column_name,
@@ -52,7 +51,7 @@ module Kvlr #:nodoc:
conditions << begin_at
end
- def ensure_valid_options(options)
+ def ensure_valid_options(options, context = :initialize)
options.each_key do |k|
raise ArgumentError.new("Invalid option #{k}") unless [:limit, :aggregation, :grouping, :date_column_name, :value_column_name, :conditions].include?(k)
end
(DIR) diff --git a/lib/kvlr/reports_as_sparkline/report_cache.rb b/lib/kvlr/reports_as_sparkline/report_cache.rb
@@ -4,8 +4,9 @@ module Kvlr #:nodoc:
class ReportCache < ActiveRecord::Base
- def self.cached_transaction(report, limit, &block)
+ def self.cached_transaction(report, limit, no_cache = false, &block)
raise ArgumentError.new('A block must be given') unless block_given?
+ return yield(report.grouping.first_reporting_period(limit)) if no_cache
self.transaction do
cached_data = self.find(
:all,
(DIR) diff --git a/spec/other/cumulated_report_spec.rb b/spec/other/cumulated_report_spec.rb
@@ -6,7 +6,7 @@ describe Kvlr::ReportsAsSparkline::CumulatedReport do
@report = Kvlr::ReportsAsSparkline::CumulatedReport.new(User, :cumulated_registrations)
end
- describe '#run' do
+ describe '.run' do
describe do