From 4a643f686afc3c8d0d3d9773e418cf9aed670107 Mon Sep 17 00:00:00 2001 From: Geoff Buesing Date: Sun, 17 Feb 2008 00:35:49 +0000 Subject: [PATCH] Adding TimeWithZone#between? git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8886 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/CHANGELOG | 2 ++ activesupport/lib/active_support/time_with_zone.rb | 6 +++++- activesupport/test/core_ext/time_with_zone_test.rb | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index af853f5f15..78b6c47d30 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Adding TimeWithZone#between? [Geoff Buesing] + * Time.=== returns true for TimeWithZone instances [Geoff Buesing] * TimeWithZone #+ and #- behave consistently with numeric arguments regardless of whether wrapped time is a Time or DateTime; consistenty answers false to #acts_like?(:date) [Geoff Buesing] diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb index 377eee949f..cd4ea8c532 100644 --- a/activesupport/lib/active_support/time_with_zone.rb +++ b/activesupport/lib/active_support/time_with_zone.rb @@ -125,6 +125,10 @@ def <=>(other) utc <=> other end + def between?(min, max) + utc.between?(min, max) + end + def eql?(other) utc == other end @@ -160,7 +164,7 @@ def to_i alias_method :hash, :to_i alias_method :tv_sec, :to_i - # A TimeProxy acts like a Time, so just return self + # A TimeWithZone acts like a Time, so just return self def to_time self end diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb index 3421b85e60..c93d6157e7 100644 --- a/activesupport/test/core_ext/time_with_zone_test.rb +++ b/activesupport/test/core_ext/time_with_zone_test.rb @@ -116,6 +116,11 @@ def test_compare_with_time_with_zone assert_equal(-1, @twz <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), TimeZone['UTC'] )) end + def test_between? + assert @twz.between?(Time.utc(1999,12,31,23,59,59), Time.utc(2000,1,1,0,0,1)) + assert_equal false, @twz.between?(Time.utc(2000,1,1,0,0,1), Time.utc(2000,1,1,0,0,2)) + end + def test_eql? assert @twz.eql?(Time.utc(2000)) assert @twz.eql?( ActiveSupport::TimeWithZone.new(Time.utc(2000), TimeZone["Hawaii"]) ) -- GitLab