Support retrieving TimeZones with a Duration. TimeZone[-28800] == TimeZone[-480.minutes]. [rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8746 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
859ca3a1ea
commit
bd72d06374
@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Support retrieving TimeZones with a Duration. TimeZone[-28800] == TimeZone[-480.minutes]. [rick]
|
||||
|
||||
* TimeWithZone#- added, so that #- can handle a Time or TimeWithZone argument correctly [Geoff Buesing]
|
||||
|
||||
* with_timezone test helper renamed with_env_tz, to distinguish between setting ENV['TZ'] and setting Time.zone in tests [Geoff Buesing]
|
||||
|
@ -6,6 +6,7 @@ class TimeZone
|
||||
"Hawaii" => "Pacific/Honolulu",
|
||||
"Alaska" => "America/Juneau",
|
||||
"Pacific Time (US & Canada)" => "America/Los_Angeles",
|
||||
'PST' => "America/Los_Angeles",
|
||||
"Tijuana" => "America/Tijuana",
|
||||
"Mountain Time (US & Canada)" => "America/Denver",
|
||||
"Arizona" => "America/Phoenix",
|
||||
@ -247,7 +248,7 @@ def all
|
||||
[[-39_600, "International Date Line West", "Midway Island", "Samoa" ],
|
||||
[-36_000, "Hawaii" ],
|
||||
[-32_400, "Alaska" ],
|
||||
[-28_800, "Pacific Time (US & Canada)", "Tijuana" ],
|
||||
[-28_800, "Pacific Time (US & Canada)", 'PST', "Tijuana" ],
|
||||
[-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan",
|
||||
"Arizona" ],
|
||||
[-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara",
|
||||
@ -314,7 +315,7 @@ def [](arg)
|
||||
when String
|
||||
all # force the zones to be loaded
|
||||
@@zones_map[arg]
|
||||
when Numeric
|
||||
when Numeric, ActiveSupport::Duration
|
||||
arg *= 3600 if arg.abs <= 13
|
||||
all.find { |z| z.utc_offset == arg.to_i }
|
||||
else
|
||||
|
@ -36,6 +36,14 @@ def test_period_for_local
|
||||
end
|
||||
end
|
||||
|
||||
def test_from_integer_to_map
|
||||
assert_instance_of TimeZone, TimeZone[-28800] # PST
|
||||
end
|
||||
|
||||
def test_from_duration_to_map
|
||||
assert_instance_of TimeZone, TimeZone[-480.minutes] # PST
|
||||
end
|
||||
|
||||
TimeZone.all.each do |zone|
|
||||
name = zone.name.downcase.gsub(/[^a-z]/, '_')
|
||||
define_method("test_from_#{name}_to_map") do
|
||||
|
Loading…
Reference in New Issue
Block a user