From 8ad5a29cef38cd95aac6553357fc32a6e9e7b411 Mon Sep 17 00:00:00 2001 From: Geoff Buesing Date: Sun, 10 Feb 2008 20:35:47 +0000 Subject: TimeWithZone #in_time_zone returns +self+ if zone argument is the same as #time_zone git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8853 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/CHANGELOG | 2 ++ activesupport/lib/active_support/time_with_zone.rb | 1 + activesupport/test/core_ext/time_with_zone_test.rb | 4 ++++ 3 files changed, 7 insertions(+) (limited to 'activesupport') diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index 6d930c773b..ec5c69873b 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* TimeWithZone #in_time_zone returns +self+ if zone argument is the same as #time_zone [Geoff Buesing] + * Adding TimeWithZone #to_a, #to_f, #to_i, #httpdate, #rfc2822 [Geoff Buesing] * Pruning unneeded TimeWithZone#change_time_zone_to_current [Geoff Buesing] diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb index 517b2bac7f..13f968386a 100644 --- a/activesupport/lib/active_support/time_with_zone.rb +++ b/activesupport/lib/active_support/time_with_zone.rb @@ -29,6 +29,7 @@ module ActiveSupport # Returns the simultaneous time in the specified zone def in_time_zone(new_zone) + return self if time_zone == new_zone utc.in_time_zone(new_zone) end diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb index 13ebfa644c..a286fda4e2 100644 --- a/activesupport/test/core_ext/time_with_zone_test.rb +++ b/activesupport/test/core_ext/time_with_zone_test.rb @@ -25,6 +25,10 @@ uses_tzinfo 'TimeWithZoneTest' do def test_in_time_zone assert_equal ActiveSupport::TimeWithZone.new(@utc, TimeZone['Alaska']), @twz.in_time_zone('Alaska') end + + def test_in_time_zone_with_new_zone_equal_to_old_zone_does_not_create_new_object + assert_equal @twz.object_id, @twz.in_time_zone(TimeZone['Eastern Time (US & Canada)']).object_id + end def test_in_current_time_zone Time.use_zone 'Alaska' do -- cgit v1.2.3