moved DateTime#reporting_period to Date#to_reporting_period - reportable - Fork of reportable required by WarVox, from hdm/reportable.
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit b15fdc0f574ec4fb68328b05d0176c890d21deda
(DIR) parent 4599dc5418a0154fa7a355cca293ed4cf538f3a0
(HTM) Author: Marco Otte-Witte <marco.otte-witte@simplabs.com>
Date: Wed, 14 Jan 2009 17:27:55 +0800
moved DateTime#reporting_period to Date#to_reporting_period
Signed-off-by: Marco Otte-Witte <marco.otte-witte@simplabs.com>
Diffstat:
A lib/kvlr/core_extensions/date.rb | 25 +++++++++++++++++++++++++
A spec/other/date_spec.rb | 27 +++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/lib/kvlr/core_extensions/date.rb b/lib/kvlr/core_extensions/date.rb
@@ -0,0 +1,25 @@
+module Kvlr #:nodoc:
+
+ module CoreExtensions #:nodoc:
+
+ module Date
+
+ ::Date.class_eval do
+
+ # 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
+
+ end
+
+ end
+
+ end
+
+end
(DIR) diff --git a/spec/other/date_spec.rb b/spec/other/date_spec.rb
@@ -0,0 +1,27 @@
+require File.join(File.dirname(__FILE__), '..', 'spec_helper')
+
+describe Date do
+
+ describe '#to_reporting_period' do
+
+ it 'should return a reporting period for the specified grouping and instance of DateTime' do
+ date_time = DateTime.now
+ grouping = Kvlr::ReportsAsSparkline::Grouping.new(:hour)
+
+ 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