aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorAndrew White <andyw@pixeltrix.co.uk>2015-03-09 13:48:55 +0000
committerAndrew White <andyw@pixeltrix.co.uk>2015-03-09 13:48:55 +0000
commit34b27701eee304d1f8bae12c841080e2b6f3b794 (patch)
tree1cc68ec0f0ec75ce11febdace39f3fb0b6fa8b03 /activesupport
parent309ac642cbce58158288d093a8995f4994bb74cd (diff)
downloadrails-34b27701eee304d1f8bae12c841080e2b6f3b794.tar.gz
rails-34b27701eee304d1f8bae12c841080e2b6f3b794.tar.bz2
rails-34b27701eee304d1f8bae12c841080e2b6f3b794.zip
Revert "Take DST into account when locating TimeZone from Numeric."
Reverting this as it's not the implementation that we would like it to be. This is being used inside of ActiveSUpport::TimeZone[] and it's unaware of the context in which to find the timezone period so the timezone found changes depending on whether DST is in effect for the current period. This means that `'2001-01-01'.in_time_zone(-9)` changes from winter/summer even though it's the same date that we're trying to convert. Since finding timezones by numeric offsets is a bit hit and miss we should introduce a new API for finding them which supplies the date context in which we want to search and we should probably also deprecate the finding of timezones via the [] method, though this needs further discussion. This reverts commit 2cc2fa3633edd96773023c6b09d07c7b9d9b841d.
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG.md10
-rw-r--r--activesupport/lib/active_support/values/time_zone.rb8
-rw-r--r--activesupport/test/core_ext/time_with_zone_test.rb7
3 files changed, 1 insertions, 24 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index f5fa70494a..43fb87f203 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -1,13 +1,3 @@
-* Take DST into account when locating TimeZone from Numeric.
-
- When given a specific offset, use the first result found where the
- total current offset (including any periodic deviations such as DST)
- from UTC is equal.
-
- Fixes #15209.
-
- *Yasyf Mohamedali*
-
* Added `#without` on `Enumerable` and `Array` to return a copy of an
enumerable without the specified elements.
diff --git a/activesupport/lib/active_support/values/time_zone.rb b/activesupport/lib/active_support/values/time_zone.rb
index ab6a78052c..da39f0d245 100644
--- a/activesupport/lib/active_support/values/time_zone.rb
+++ b/activesupport/lib/active_support/values/time_zone.rb
@@ -239,7 +239,7 @@ module ActiveSupport
end
when Numeric, ActiveSupport::Duration
arg *= 3600 if arg.abs <= 13
- all.find { |z| z.utc_total_offset == arg.to_i }
+ all.find { |z| z.utc_offset == arg.to_i }
else
raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}"
end
@@ -285,12 +285,6 @@ module ActiveSupport
end
end
- # Returns the offset of this time zone from UTC in seconds,
- # taking DST into account.
- def utc_total_offset
- tzinfo.current_period.utc_total_offset if tzinfo
- end
-
# Returns the offset of this time zone as a formatted string, of the
# format "+HH:MM".
def formatted_offset(colon=true, alternate_utc_string = nil)
diff --git a/activesupport/test/core_ext/time_with_zone_test.rb b/activesupport/test/core_ext/time_with_zone_test.rb
index 0f5522b712..92c233d567 100644
--- a/activesupport/test/core_ext/time_with_zone_test.rb
+++ b/activesupport/test/core_ext/time_with_zone_test.rb
@@ -867,13 +867,6 @@ class TimeWithZoneMethodsForTimeAndDateTimeTest < ActiveSupport::TestCase
end
end
- def test_in_time_zone_with_dst
- travel_to(Time.utc(2014, 5, 20, 4, 59, 59))
- time = Time.now.in_time_zone(-4)
- assert_equal (-4*3600), time.time_zone.utc_total_offset
- travel_back
- end
-
def test_in_time_zone_with_invalid_argument
assert_raise(ArgumentError) { @t.in_time_zone("No such timezone exists") }
assert_raise(ArgumentError) { @dt.in_time_zone("No such timezone exists") }