tweaked DateTime.to_reporting_period - reportable - Fork of reportable required by WarVox, from hdm/reportable.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 226d0448e906b0ed7ab0466519799650f7753c54
 (DIR) parent 0501284c2f5ff5aef62c0fc312f9bbfde444239a
 (HTM) Author: Marco Otte-Witte <marco.otte-witte@simplabs.com>
       Date:   Wed, 14 Jan 2009 17:12:27 +0800
       
       tweaked DateTime.to_reporting_period
       
       Signed-off-by: Marco Otte-Witte <marco.otte-witte@simplabs.com>
       Diffstat:
         M lib/kvlr/core_extensions/date_time… |       5 +++++
         M spec/classes/date_time_spec.rb      |      11 +++++++++++
       
       2 files changed, 16 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/lib/kvlr/core_extensions/date_time.rb b/lib/kvlr/core_extensions/date_time.rb
       @@ -8,6 +8,11 @@ module Kvlr #:nodoc:
        
                # Converts the DateTime into a Kvlr::ReportsAsSparkline::ReportingPeriod
                def to_reporting_period(grouping)
       +          if grouping.is_a?(Symbol)
       +            grouping = Kvlr::ReportsAsSparkline::Grouping.new(grouping)
       +          elsif !grouping.is_a?(Kvlr::ReportsAsSparkline::Grouping)
       +            raise ArgumentError.new('grouping must be either an instance of Kvlr::ReportsAsSparkline::Grouping or a symbol.')
       +          end
                  Kvlr::ReportsAsSparkline::ReportingPeriod.new(grouping, self)
                end
        
 (DIR) diff --git a/spec/classes/date_time_spec.rb b/spec/classes/date_time_spec.rb
       @@ -11,6 +11,17 @@ describe DateTime do
              date_time.to_reporting_period(grouping).should == Kvlr::ReportsAsSparkline::ReportingPeriod.new(grouping, date_time)
            end
        
       +    it 'should return a reporting period for the specified grouping and instance of DateTime if the grouping is specified as a symbol' do
       +      date_time = DateTime.now
       +      grouping = Kvlr::ReportsAsSparkline::Grouping.new(:hour)
       +
       +      date_time.to_reporting_period(:hour).should == Kvlr::ReportsAsSparkline::ReportingPeriod.new(grouping, date_time)
       +    end
       +
       +    it 'should raise an ArgumentError if the grouping is not specified as a symbol or an instance of Kvlr::ReportsAsSparkline::Grouping' do
       +      lambda { DateTime.now.to_reporting_period(1) }.should raise_error(ArgumentError)
       +    end
       +
          end
        
        end