diff options
author | Andrew White <andrew.white@unboxed.co> | 2016-10-02 17:00:18 +0100 |
---|---|---|
committer | Andrew White <andrew.white@unboxed.co> | 2016-10-02 17:00:18 +0100 |
commit | 6c1dac00dfefd9afd12b64d7f9b5964d8c58d73b (patch) | |
tree | 4bcd313922d08991dd8734902885ef029146e116 /activesupport | |
parent | da0fdd6bf529df8806ddb4b97e4bb31c95249e0e (diff) | |
download | rails-6c1dac00dfefd9afd12b64d7f9b5964d8c58d73b.tar.gz rails-6c1dac00dfefd9afd12b64d7f9b5964d8c58d73b.tar.bz2 rails-6c1dac00dfefd9afd12b64d7f9b5964d8c58d73b.zip |
Revert "Merge pull request #26677 from tbalthazar/26644"
Turns out trying to cache on localtime with arguments is too hard
so we'll do it on DateAndTime::Compatibility#to_time instead.
This reverts commit 9ce2d1b1a43fc4ef3db59849b7412d30583a4074, reversing
changes made to 53ede1aff2025d4391d0e05ba471fdaf3110a99c.
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/CHANGELOG.md | 22 | ||||
-rw-r--r-- | activesupport/lib/active_support/time_with_zone.rb | 3 | ||||
-rw-r--r-- | activesupport/test/core_ext/time_with_zone_test.rb | 6 |
3 files changed, 1 insertions, 30 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 499310975e..f840783059 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,25 +1,3 @@ -* Fix `ActiveSupport::TimeWithZone#localtime` when called with different - `utc_offset` values. - - Previously memoization in `localtime` wasn't taking the `utc_offset` - parameter into account when returning a cached value. It now caches the - computed value depending on the `utc_offset` parameter, e.g: - - Time.zone = "US/Eastern" - - t = Time.zone.local(2016,5,2,11) - # => Mon, 02 May 2016 11:00:00 EDT -04:00 - - t.localtime(-7200) - # => 2016-05-02 13:00:00 -0200 - - t.localtime(-3600) - # => 2016-05-02 14:00:00 -0100 - - Fixes #26644. - - *Thomas Balthazar* - * Fix `ActiveSupport::TimeWithZone#in` across DST boundaries. Previously calls to `in` were being sent to the non-DST aware diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb index bee481e5f5..c35588fbae 100644 --- a/activesupport/lib/active_support/time_with_zone.rb +++ b/activesupport/lib/active_support/time_with_zone.rb @@ -80,8 +80,7 @@ module ActiveSupport # Returns a <tt>Time</tt> instance of the simultaneous time in the system timezone. def localtime(utc_offset = nil) - @localtime ||= {} - @localtime[utc_offset] ||= utc.getlocal(utc_offset) + @localtime ||= utc.getlocal(utc_offset) end alias_method :getlocal, :localtime diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb index 5c940da1e3..e35aa6e154 100644 --- a/activesupport/test/core_ext/time_with_zone_test.rb +++ b/activesupport/test/core_ext/time_with_zone_test.rb @@ -54,12 +54,6 @@ class TimeWithZoneTest < ActiveSupport::TestCase assert_instance_of Time, @dt_twz.localtime end - def test_localtime_with_offset - assert_equal 0, @twz.localtime.gmt_offset - assert_equal (-3600), @twz.localtime(-3600).gmt_offset - assert_equal (-7200), @twz.localtime(-7200).gmt_offset - end - def test_utc? assert_equal false, @twz.utc? |