added depth attribute to Redistat::Date

This commit is contained in:
2010-10-18 23:40:09 +01:00
parent 9cab9647ce
commit dce49f637c
2 changed files with 20 additions and 4 deletions

View File

@@ -8,10 +8,12 @@ module Redistat
attr_accessor :min
attr_accessor :sec
attr_accessor :usec
attr_accessor :depth
DEPTHS = [:year, :month, :day, :hour, :min, :sec, :usec]
def initialize(input)
def initialize(input, depth = nil)
@depth = depth
if input.is_a?(::Time)
from_time(input)
elsif input.is_a?(::Date)
@@ -39,7 +41,7 @@ module Redistat
alias :to_integer :to_i
def to_s(depth = nil)
depth ||= :sec
depth ||= @depth ||= :sec
output = ""
DEPTHS.each_with_index do |current, i|
break if self.send(current).nil?
@@ -82,8 +84,8 @@ module Redistat
end
module DateHelper
def to_redistat
Redistat::Date.new(self)
def to_redistat(depth = nil)
Redistat::Date.new(self, depth)
end
alias :to_rs :to_redistat
end

View File

@@ -70,4 +70,18 @@ describe Redistat::Date do
Date.today.to_rs.to_date.should == Date.today
end
it "should have a depth property" do
now = Time.now
date = Redistat::Date.new(now)
date.depth.should be_nil
date.to_s.should == now.to_rs(:sec).to_s
date.to_s.should == now.to_rs.to_s(:sec)
date = Redistat::Date.new(now, :hour)
date.depth.should == :hour
date.to_s.should == now.to_rs(:hour).to_s
date.to_s.should == now.to_rs.to_s(:hour)
end
end