tzinfo 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of tzinfo might be problematic. Click here for more details.
- data/CHANGES +222 -172
- data/README +21 -4
- data/Rakefile +27 -12
- data/lib/tzinfo.rb +5 -2
- data/lib/tzinfo/country.rb +100 -90
- data/lib/tzinfo/country_index_definition.rb +50 -0
- data/lib/tzinfo/country_info.rb +82 -0
- data/lib/tzinfo/country_timezone.rb +103 -0
- data/lib/tzinfo/data_timezone.rb +47 -0
- data/lib/tzinfo/data_timezone_info.rb +226 -0
- data/lib/tzinfo/definitions/Africa/Abidjan.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Accra.rb +31 -25
- data/lib/tzinfo/definitions/Africa/Addis_Ababa.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Algiers.rb +53 -44
- data/lib/tzinfo/definitions/Africa/Asmera.rb +20 -13
- data/lib/tzinfo/definitions/Africa/Bamako.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Bangui.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Banjul.rb +20 -13
- data/lib/tzinfo/definitions/Africa/Bissau.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Blantyre.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Brazzaville.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Bujumbura.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Cairo.rb +217 -211
- data/lib/tzinfo/definitions/Africa/Casablanca.rb +36 -29
- data/lib/tzinfo/definitions/Africa/Ceuta.rb +170 -162
- data/lib/tzinfo/definitions/Africa/Conakry.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Dakar.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Dar_es_Salaam.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Djibouti.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Douala.rb +16 -11
- data/lib/tzinfo/definitions/Africa/El_Aaiun.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Freetown.rb +51 -41
- data/lib/tzinfo/definitions/Africa/Gaborone.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Harare.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Johannesburg.rb +23 -16
- data/lib/tzinfo/definitions/Africa/Kampala.rb +21 -14
- data/lib/tzinfo/definitions/Africa/Khartoum.rb +51 -44
- data/lib/tzinfo/definitions/Africa/Kigali.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Kinshasa.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Lagos.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Libreville.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Lome.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Luanda.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Lubumbashi.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Lusaka.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Malabo.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Maputo.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Maseru.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Mbabane.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Mogadishu.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Monrovia.rb +20 -13
- data/lib/tzinfo/definitions/Africa/Nairobi.rb +21 -14
- data/lib/tzinfo/definitions/Africa/Ndjamena.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Niamey.rb +20 -13
- data/lib/tzinfo/definitions/Africa/Nouakchott.rb +19 -13
- data/lib/tzinfo/definitions/Africa/Ouagadougou.rb +16 -11
- data/lib/tzinfo/definitions/Africa/Porto__m__Novo.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Sao_Tome.rb +18 -12
- data/lib/tzinfo/definitions/Africa/Timbuktu.rb +11 -10
- data/lib/tzinfo/definitions/Africa/Tripoli.rb +46 -39
- data/lib/tzinfo/definitions/Africa/Tunis.rb +135 -128
- data/lib/tzinfo/definitions/Africa/Windhoek.rb +138 -128
- data/lib/tzinfo/definitions/America/Adak.rb +194 -181
- data/lib/tzinfo/definitions/America/Anchorage.rb +194 -181
- data/lib/tzinfo/definitions/America/Anguilla.rb +16 -11
- data/lib/tzinfo/definitions/America/Antigua.rb +18 -12
- data/lib/tzinfo/definitions/America/Araguaina.rb +65 -59
- data/lib/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +78 -69
- data/lib/tzinfo/definitions/America/Argentina/Catamarca.rb +81 -71
- data/lib/tzinfo/definitions/America/Argentina/ComodRivadavia.rb +13 -12
- data/lib/tzinfo/definitions/America/Argentina/Cordoba.rb +79 -69
- data/lib/tzinfo/definitions/America/Argentina/Jujuy.rb +80 -69
- data/lib/tzinfo/definitions/America/Argentina/La_Rioja.rb +82 -72
- data/lib/tzinfo/definitions/America/Argentina/Mendoza.rb +82 -71
- data/lib/tzinfo/definitions/America/Argentina/Rio_Gallegos.rb +81 -71
- data/lib/tzinfo/definitions/America/Argentina/San_Juan.rb +82 -72
- data/lib/tzinfo/definitions/America/Argentina/Tucuman.rb +81 -71
- data/lib/tzinfo/definitions/America/Argentina/Ushuaia.rb +81 -71
- data/lib/tzinfo/definitions/America/Aruba.rb +18 -12
- data/lib/tzinfo/definitions/America/Asuncion.rb +172 -164
- data/lib/tzinfo/definitions/America/Atka.rb +11 -10
- data/lib/tzinfo/definitions/America/Bahia.rb +75 -69
- data/lib/tzinfo/definitions/America/Barbados.rb +27 -20
- data/lib/tzinfo/definitions/America/Belem.rb +45 -39
- data/lib/tzinfo/definitions/America/Belize.rb +72 -65
- data/lib/tzinfo/definitions/America/Boa_Vista.rb +49 -43
- data/lib/tzinfo/definitions/America/Bogota.rb +21 -14
- data/lib/tzinfo/definitions/America/Boise.rb +197 -187
- data/lib/tzinfo/definitions/America/Buenos_Aires.rb +11 -10
- data/lib/tzinfo/definitions/America/Cambridge_Bay.rb +175 -163
- data/lib/tzinfo/definitions/America/Campo_Grande.rb +169 -163
- data/lib/tzinfo/definitions/America/Cancun.rb +131 -123
- data/lib/tzinfo/definitions/America/Caracas.rb +20 -13
- data/lib/tzinfo/definitions/America/Catamarca.rb +11 -10
- data/lib/tzinfo/definitions/America/Cayenne.rb +18 -12
- data/lib/tzinfo/definitions/America/Cayman.rb +18 -12
- data/lib/tzinfo/definitions/America/Chicago.rb +281 -272
- data/lib/tzinfo/definitions/America/Chihuahua.rb +134 -126
- data/lib/tzinfo/definitions/America/Coral_Harbour.rb +26 -18
- data/lib/tzinfo/definitions/America/Cordoba.rb +11 -10
- data/lib/tzinfo/definitions/America/Costa_Rica.rb +27 -20
- data/lib/tzinfo/definitions/America/Cuiaba.rb +167 -161
- data/lib/tzinfo/definitions/America/Curacao.rb +18 -12
- data/lib/tzinfo/definitions/America/Danmarkshavn.rb +51 -44
- data/lib/tzinfo/definitions/America/Dawson.rb +174 -163
- data/lib/tzinfo/definitions/America/Dawson_Creek.rb +77 -68
- data/lib/tzinfo/definitions/America/Denver.rb +202 -194
- data/lib/tzinfo/definitions/America/Detroit.rb +184 -175
- data/lib/tzinfo/definitions/America/Dominica.rb +16 -11
- data/lib/tzinfo/definitions/America/Edmonton.rb +198 -190
- data/lib/tzinfo/definitions/America/Eirunepe.rb +47 -41
- data/lib/tzinfo/definitions/America/El_Salvador.rb +21 -15
- data/lib/tzinfo/definitions/America/Ensenada.rb +11 -10
- data/lib/tzinfo/definitions/America/Fort_Wayne.rb +11 -10
- data/lib/tzinfo/definitions/America/Fortaleza.rb +55 -49
- data/lib/tzinfo/definitions/America/Glace_Bay.rb +184 -176
- data/lib/tzinfo/definitions/America/Godthab.rb +159 -153
- data/lib/tzinfo/definitions/America/Goose_Bay.rb +253 -240
- data/lib/tzinfo/definitions/America/Grand_Turk.rb +163 -156
- data/lib/tzinfo/definitions/America/Grenada.rb +16 -11
- data/lib/tzinfo/definitions/America/Guadeloupe.rb +16 -11
- data/lib/tzinfo/definitions/America/Guatemala.rb +25 -19
- data/lib/tzinfo/definitions/America/Guayaquil.rb +18 -12
- data/lib/tzinfo/definitions/America/Guyana.rb +22 -14
- data/lib/tzinfo/definitions/America/Halifax.rb +272 -264
- data/lib/tzinfo/definitions/America/Havana.rb +199 -192
- data/lib/tzinfo/definitions/America/Hermosillo.rb +33 -25
- data/lib/tzinfo/definitions/America/Indiana/Indianapolis.rb +147 -137
- data/lib/tzinfo/definitions/America/Indiana/Knox.rb +201 -192
- data/lib/tzinfo/definitions/America/Indiana/Marengo.rb +151 -141
- data/lib/tzinfo/definitions/America/Indiana/Petersburg.rb +163 -154
- data/lib/tzinfo/definitions/America/Indiana/Vevay.rb +129 -119
- data/lib/tzinfo/definitions/America/Indiana/Vincennes.rb +149 -139
- data/lib/tzinfo/definitions/America/Indianapolis.rb +11 -10
- data/lib/tzinfo/definitions/America/Inuvik.rb +174 -163
- data/lib/tzinfo/definitions/America/Iqaluit.rb +173 -162
- data/lib/tzinfo/definitions/America/Jamaica.rb +39 -32
- data/lib/tzinfo/definitions/America/Jujuy.rb +11 -10
- data/lib/tzinfo/definitions/America/Juneau.rb +192 -180
- data/lib/tzinfo/definitions/America/Kentucky/Louisville.rb +226 -216
- data/lib/tzinfo/definitions/America/Kentucky/Monticello.rb +196 -186
- data/lib/tzinfo/definitions/America/Knox_IN.rb +11 -10
- data/lib/tzinfo/definitions/America/La_Paz.rb +20 -13
- data/lib/tzinfo/definitions/America/Lima.rb +33 -26
- data/lib/tzinfo/definitions/America/Los_Angeles.rb +230 -222
- data/lib/tzinfo/definitions/America/Louisville.rb +11 -10
- data/lib/tzinfo/definitions/America/Maceio.rb +57 -51
- data/lib/tzinfo/definitions/America/Managua.rb +34 -26
- data/lib/tzinfo/definitions/America/Manaus.rb +47 -41
- data/lib/tzinfo/definitions/America/Martinique.rb +21 -14
- data/lib/tzinfo/definitions/America/Mazatlan.rb +137 -129
- data/lib/tzinfo/definitions/America/Mendoza.rb +11 -10
- data/lib/tzinfo/definitions/America/Menominee.rb +188 -179
- data/lib/tzinfo/definitions/America/Merida.rb +130 -123
- data/lib/tzinfo/definitions/America/Mexico_City.rb +142 -134
- data/lib/tzinfo/definitions/America/Miquelon.rb +147 -140
- data/lib/tzinfo/definitions/America/Moncton.rb +252 -243
- data/lib/tzinfo/definitions/America/Monterrey.rb +129 -123
- data/lib/tzinfo/definitions/America/Montevideo.rb +89 -79
- data/lib/tzinfo/definitions/America/Montreal.rb +277 -269
- data/lib/tzinfo/definitions/America/Montserrat.rb +16 -11
- data/lib/tzinfo/definitions/America/Nassau.rb +191 -185
- data/lib/tzinfo/definitions/America/New_York.rb +280 -272
- data/lib/tzinfo/definitions/America/Nipigon.rb +179 -171
- data/lib/tzinfo/definitions/America/Nome.rb +194 -181
- data/lib/tzinfo/definitions/America/Noronha.rb +55 -49
- data/lib/tzinfo/definitions/America/North_Dakota/Center.rb +198 -188
- data/lib/tzinfo/definitions/America/North_Dakota/New_Salem.rb +198 -188
- data/lib/tzinfo/definitions/America/Panama.rb +18 -12
- data/lib/tzinfo/definitions/America/Pangnirtung.rb +175 -162
- data/lib/tzinfo/definitions/America/Paramaribo.rb +24 -15
- data/lib/tzinfo/definitions/America/Phoenix.rb +28 -21
- data/lib/tzinfo/definitions/America/Port__m__au__m__Prince.rb +141 -134
- data/lib/tzinfo/definitions/America/Port_of_Spain.rb +16 -11
- data/lib/tzinfo/definitions/America/Porto_Acre.rb +11 -10
- data/lib/tzinfo/definitions/America/Porto_Velho.rb +45 -39
- data/lib/tzinfo/definitions/America/Puerto_Rico.rb +21 -14
- data/lib/tzinfo/definitions/America/Rainy_River.rb +179 -171
- data/lib/tzinfo/definitions/America/Rankin_Inlet.rb +172 -162
- data/lib/tzinfo/definitions/America/Recife.rb +55 -49
- data/lib/tzinfo/definitions/America/Regina.rb +72 -63
- data/lib/tzinfo/definitions/America/Rio_Branco.rb +45 -39
- data/lib/tzinfo/definitions/America/Rosario.rb +11 -10
- data/lib/tzinfo/definitions/America/Santiago.rb +202 -193
- data/lib/tzinfo/definitions/America/Santo_Domingo.rb +36 -27
- data/lib/tzinfo/definitions/America/Sao_Paulo.rb +169 -163
- data/lib/tzinfo/definitions/America/Scoresbysund.rb +161 -153
- data/lib/tzinfo/definitions/America/Shiprock.rb +11 -10
- data/lib/tzinfo/definitions/America/St_Johns.rb +286 -275
- data/lib/tzinfo/definitions/America/St_Kitts.rb +16 -11
- data/lib/tzinfo/definitions/America/St_Lucia.rb +18 -12
- data/lib/tzinfo/definitions/America/St_Thomas.rb +16 -11
- data/lib/tzinfo/definitions/America/St_Vincent.rb +18 -12
- data/lib/tzinfo/definitions/America/Swift_Current.rb +42 -33
- data/lib/tzinfo/definitions/America/Tegucigalpa.rb +23 -17
- data/lib/tzinfo/definitions/America/Thule.rb +137 -131
- data/lib/tzinfo/definitions/America/Thunder_Bay.rb +184 -175
- data/lib/tzinfo/definitions/America/Tijuana.rb +194 -185
- data/lib/tzinfo/definitions/America/Toronto.rb +277 -269
- data/lib/tzinfo/definitions/America/Tortola.rb +16 -11
- data/lib/tzinfo/definitions/America/Vancouver.rb +234 -226
- data/lib/tzinfo/definitions/America/Virgin.rb +11 -10
- data/lib/tzinfo/definitions/America/Whitehorse.rb +174 -163
- data/lib/tzinfo/definitions/America/Winnipeg.rb +230 -222
- data/lib/tzinfo/definitions/America/Yakutat.rb +191 -180
- data/lib/tzinfo/definitions/America/Yellowknife.rb +171 -162
- data/lib/tzinfo/definitions/Antarctica/Casey.rb +16 -11
- data/lib/tzinfo/definitions/Antarctica/Davis.rb +18 -13
- data/lib/tzinfo/definitions/Antarctica/DumontDUrville.rb +19 -13
- data/lib/tzinfo/definitions/Antarctica/Mawson.rb +16 -11
- data/lib/tzinfo/definitions/Antarctica/McMurdo.rb +169 -163
- data/lib/tzinfo/definitions/Antarctica/Palmer.rb +176 -166
- data/lib/tzinfo/definitions/Antarctica/Rothera.rb +16 -11
- data/lib/tzinfo/definitions/Antarctica/South_Pole.rb +11 -10
- data/lib/tzinfo/definitions/Antarctica/Syowa.rb +16 -11
- data/lib/tzinfo/definitions/Antarctica/Vostok.rb +16 -11
- data/lib/tzinfo/definitions/Arctic/Longyearbyen.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Aden.rb +16 -11
- data/lib/tzinfo/definitions/Asia/Almaty.rb +65 -58
- data/lib/tzinfo/definitions/Asia/Amman.rb +161 -155
- data/lib/tzinfo/definitions/Asia/Anadyr.rb +163 -153
- data/lib/tzinfo/definitions/Asia/Aqtau.rb +73 -60
- data/lib/tzinfo/definitions/Asia/Aqtobe.rb +69 -59
- data/lib/tzinfo/definitions/Asia/Ashgabat.rb +46 -36
- data/lib/tzinfo/definitions/Asia/Ashkhabad.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Baghdad.rb +157 -150
- data/lib/tzinfo/definitions/Asia/Bahrain.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Baku.rb +159 -147
- data/lib/tzinfo/definitions/Asia/Bangkok.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Beirut.rb +183 -177
- data/lib/tzinfo/definitions/Asia/Bishkek.rb +73 -62
- data/lib/tzinfo/definitions/Asia/Brunei.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Calcutta.rb +23 -15
- data/lib/tzinfo/definitions/Asia/Choibalsan.rb +152 -144
- data/lib/tzinfo/definitions/Asia/Chongqing.rb +31 -24
- data/lib/tzinfo/definitions/Asia/Chungking.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Colombo.rb +28 -18
- data/lib/tzinfo/definitions/Asia/Dacca.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Damascus.rb +193 -187
- data/lib/tzinfo/definitions/Asia/Dhaka.rb +25 -16
- data/lib/tzinfo/definitions/Asia/Dili.rb +23 -15
- data/lib/tzinfo/definitions/Asia/Dubai.rb +16 -11
- data/lib/tzinfo/definitions/Asia/Dushanbe.rb +43 -34
- data/lib/tzinfo/definitions/Asia/Gaza.rb +189 -180
- data/lib/tzinfo/definitions/Asia/Harbin.rb +35 -27
- data/lib/tzinfo/definitions/Asia/Hong_Kong.rb +85 -79
- data/lib/tzinfo/definitions/Asia/Hovd.rb +151 -144
- data/lib/tzinfo/definitions/Asia/Irkutsk.rb +163 -154
- data/lib/tzinfo/definitions/Asia/Istanbul.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Jakarta.rb +28 -18
- data/lib/tzinfo/definitions/Asia/Jayapura.rb +19 -13
- data/lib/tzinfo/definitions/Asia/Jerusalem.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Kabul.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Kamchatka.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Karachi.rb +26 -17
- data/lib/tzinfo/definitions/Asia/Kashgar.rb +33 -25
- data/lib/tzinfo/definitions/Asia/Katmandu.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Krasnoyarsk.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Kuala_Lumpur.rb +29 -18
- data/lib/tzinfo/definitions/Asia/Kuching.rb +38 -29
- data/lib/tzinfo/definitions/Asia/Kuwait.rb +16 -11
- data/lib/tzinfo/definitions/Asia/Macao.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Macau.rb +59 -52
- data/lib/tzinfo/definitions/Asia/Magadan.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Makassar.rb +21 -14
- data/lib/tzinfo/definitions/Asia/Manila.rb +28 -20
- data/lib/tzinfo/definitions/Asia/Muscat.rb +16 -11
- data/lib/tzinfo/definitions/Asia/Nicosia.rb +169 -163
- data/lib/tzinfo/definitions/Asia/Novosibirsk.rb +162 -154
- data/lib/tzinfo/definitions/Asia/Omsk.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Oral.rb +72 -60
- data/lib/tzinfo/definitions/Asia/Phnom_Penh.rb +21 -14
- data/lib/tzinfo/definitions/Asia/Pontianak.rb +28 -18
- data/lib/tzinfo/definitions/Asia/Pyongyang.rb +23 -16
- data/lib/tzinfo/definitions/Asia/Qatar.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Qyzylorda.rb +71 -60
- data/lib/tzinfo/definitions/Asia/Rangoon.rb +22 -14
- data/lib/tzinfo/definitions/Asia/Riyadh.rb +16 -11
- data/lib/tzinfo/definitions/Asia/Riyadh87.rb +590 -346
- data/lib/tzinfo/definitions/Asia/Riyadh88.rb +580 -347
- data/lib/tzinfo/definitions/Asia/Riyadh89.rb +580 -347
- data/lib/tzinfo/definitions/Asia/Saigon.rb +21 -14
- data/lib/tzinfo/definitions/Asia/Sakhalin.rb +164 -154
- data/lib/tzinfo/definitions/Asia/Samarkand.rb +45 -35
- data/lib/tzinfo/definitions/Asia/Seoul.rb +32 -23
- data/lib/tzinfo/definitions/Asia/Shanghai.rb +33 -27
- data/lib/tzinfo/definitions/Asia/Singapore.rb +31 -19
- data/lib/tzinfo/definitions/Asia/Taipei.rb +57 -51
- data/lib/tzinfo/definitions/Asia/Tashkent.rb +45 -35
- data/lib/tzinfo/definitions/Asia/Tbilisi.rb +76 -63
- data/lib/tzinfo/definitions/Asia/Tehran.rb +59 -50
- data/lib/tzinfo/definitions/Asia/Tel_Aviv.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Thimbu.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Thimphu.rb +18 -12
- data/lib/tzinfo/definitions/Asia/Tokyo.rb +28 -21
- data/lib/tzinfo/definitions/Asia/Ujung_Pandang.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Ulaanbaatar.rb +151 -144
- data/lib/tzinfo/definitions/Asia/Ulan_Bator.rb +11 -10
- data/lib/tzinfo/definitions/Asia/Urumqi.rb +31 -24
- data/lib/tzinfo/definitions/Asia/Vientiane.rb +21 -14
- data/lib/tzinfo/definitions/Asia/Vladivostok.rb +162 -153
- data/lib/tzinfo/definitions/Asia/Yakutsk.rb +161 -153
- data/lib/tzinfo/definitions/Asia/Yekaterinburg.rb +163 -153
- data/lib/tzinfo/definitions/Asia/Yerevan.rb +163 -151
- data/lib/tzinfo/definitions/Atlantic/Azores.rb +268 -257
- data/lib/tzinfo/definitions/Atlantic/Bermuda.rb +171 -165
- data/lib/tzinfo/definitions/Atlantic/Canary.rb +161 -154
- data/lib/tzinfo/definitions/Atlantic/Cape_Verde.rb +21 -14
- data/lib/tzinfo/definitions/Atlantic/Faeroe.rb +157 -151
- data/lib/tzinfo/definitions/Atlantic/Jan_Mayen.rb +11 -10
- data/lib/tzinfo/definitions/Atlantic/Madeira.rb +267 -257
- data/lib/tzinfo/definitions/Atlantic/Reykjavik.rb +83 -75
- data/lib/tzinfo/definitions/Atlantic/South_Georgia.rb +16 -11
- data/lib/tzinfo/definitions/Atlantic/St_Helena.rb +18 -12
- data/lib/tzinfo/definitions/Atlantic/Stanley.rb +168 -159
- data/lib/tzinfo/definitions/Australia/ACT.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Adelaide.rb +185 -178
- data/lib/tzinfo/definitions/Australia/Brisbane.rb +33 -27
- data/lib/tzinfo/definitions/Australia/Broken_Hill.rb +187 -179
- data/lib/tzinfo/definitions/Australia/Canberra.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Currie.rb +183 -177
- data/lib/tzinfo/definitions/Australia/Darwin.rb +27 -20
- data/lib/tzinfo/definitions/Australia/Hobart.rb +191 -185
- data/lib/tzinfo/definitions/Australia/LHI.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Lindeman.rb +37 -31
- data/lib/tzinfo/definitions/Australia/Lord_Howe.rb +158 -150
- data/lib/tzinfo/definitions/Australia/Melbourne.rb +183 -177
- data/lib/tzinfo/definitions/Australia/NSW.rb +11 -10
- data/lib/tzinfo/definitions/Australia/North.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Perth.rb +29 -23
- data/lib/tzinfo/definitions/Australia/Queensland.rb +11 -10
- data/lib/tzinfo/definitions/Australia/South.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Sydney.rb +183 -177
- data/lib/tzinfo/definitions/Australia/Tasmania.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Victoria.rb +11 -10
- data/lib/tzinfo/definitions/Australia/West.rb +11 -10
- data/lib/tzinfo/definitions/Australia/Yancowinna.rb +11 -10
- data/lib/tzinfo/definitions/Brazil/Acre.rb +11 -10
- data/lib/tzinfo/definitions/Brazil/DeNoronha.rb +11 -10
- data/lib/tzinfo/definitions/Brazil/East.rb +11 -10
- data/lib/tzinfo/definitions/Brazil/West.rb +11 -10
- data/lib/tzinfo/definitions/CET.rb +173 -168
- data/lib/tzinfo/definitions/CST6CDT.rb +190 -183
- data/lib/tzinfo/definitions/Canada/Atlantic.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Central.rb +11 -10
- data/lib/tzinfo/definitions/Canada/East__m__Saskatchewan.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Eastern.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Mountain.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Newfoundland.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Pacific.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Saskatchewan.rb +11 -10
- data/lib/tzinfo/definitions/Canada/Yukon.rb +11 -10
- data/lib/tzinfo/definitions/Chile/Continental.rb +11 -10
- data/lib/tzinfo/definitions/Chile/EasterIsland.rb +11 -10
- data/lib/tzinfo/definitions/Cuba.rb +9 -8
- data/lib/tzinfo/definitions/EET.rb +161 -156
- data/lib/tzinfo/definitions/EST.rb +12 -8
- data/lib/tzinfo/definitions/EST5EDT.rb +190 -183
- data/lib/tzinfo/definitions/Egypt.rb +9 -8
- data/lib/tzinfo/definitions/Eire.rb +9 -8
- data/lib/tzinfo/definitions/Etc/GMT.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT0.rb +11 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__0.rb +11 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__1.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__10.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__11.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__12.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__13.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__14.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__2.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__3.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__4.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__5.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__6.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__7.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__8.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__m__9.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__0.rb +11 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__1.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__10.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__11.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__12.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__2.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__3.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__4.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__5.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__6.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__7.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__8.rb +14 -10
- data/lib/tzinfo/definitions/Etc/GMT__p__9.rb +14 -10
- data/lib/tzinfo/definitions/Etc/Greenwich.rb +11 -10
- data/lib/tzinfo/definitions/Etc/UCT.rb +14 -10
- data/lib/tzinfo/definitions/Etc/UTC.rb +14 -10
- data/lib/tzinfo/definitions/Etc/Universal.rb +11 -10
- data/lib/tzinfo/definitions/Etc/Zulu.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Amsterdam.rb +226 -216
- data/lib/tzinfo/definitions/Europe/Andorra.rb +151 -144
- data/lib/tzinfo/definitions/Europe/Athens.rb +183 -174
- data/lib/tzinfo/definitions/Europe/Belfast.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Belgrade.rb +161 -155
- data/lib/tzinfo/definitions/Europe/Berlin.rb +186 -179
- data/lib/tzinfo/definitions/Europe/Bratislava.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Brussels.rb +230 -221
- data/lib/tzinfo/definitions/Europe/Bucharest.rb +179 -172
- data/lib/tzinfo/definitions/Europe/Budapest.rb +195 -189
- data/lib/tzinfo/definitions/Europe/Chisinau.rb +187 -175
- data/lib/tzinfo/definitions/Europe/Copenhagen.rb +177 -170
- data/lib/tzinfo/definitions/Europe/Dublin.rb +274 -263
- data/lib/tzinfo/definitions/Europe/Gibraltar.rb +243 -234
- data/lib/tzinfo/definitions/Europe/Helsinki.rb +161 -154
- data/lib/tzinfo/definitions/Europe/Istanbul.rb +216 -207
- data/lib/tzinfo/definitions/Europe/Kaliningrad.rb +179 -167
- data/lib/tzinfo/definitions/Europe/Kiev.rb +166 -155
- data/lib/tzinfo/definitions/Europe/Lisbon.rb +266 -257
- data/lib/tzinfo/definitions/Europe/Ljubljana.rb +11 -10
- data/lib/tzinfo/definitions/Europe/London.rb +286 -277
- data/lib/tzinfo/definitions/Europe/Luxembourg.rb +229 -219
- data/lib/tzinfo/definitions/Europe/Madrid.rb +209 -200
- data/lib/tzinfo/definitions/Europe/Malta.rb +211 -205
- data/lib/tzinfo/definitions/Europe/Mariehamn.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Minsk.rb +168 -157
- data/lib/tzinfo/definitions/Europe/Monaco.rb +231 -221
- data/lib/tzinfo/definitions/Europe/Moscow.rb +179 -166
- data/lib/tzinfo/definitions/Europe/Nicosia.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Oslo.rb +183 -177
- data/lib/tzinfo/definitions/Europe/Paris.rb +230 -220
- data/lib/tzinfo/definitions/Europe/Prague.rb +185 -178
- data/lib/tzinfo/definitions/Europe/Riga.rb +174 -162
- data/lib/tzinfo/definitions/Europe/Rome.rb +213 -206
- data/lib/tzinfo/definitions/Europe/Samara.rb +164 -153
- data/lib/tzinfo/definitions/Europe/San_Marino.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Sarajevo.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Simferopol.rb +168 -157
- data/lib/tzinfo/definitions/Europe/Skopje.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Sofia.rb +171 -162
- data/lib/tzinfo/definitions/Europe/Stockholm.rb +163 -156
- data/lib/tzinfo/definitions/Europe/Tallinn.rb +170 -159
- data/lib/tzinfo/definitions/Europe/Tirane.rb +175 -169
- data/lib/tzinfo/definitions/Europe/Tiraspol.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Uzhgorod.rb +166 -156
- data/lib/tzinfo/definitions/Europe/Vaduz.rb +157 -151
- data/lib/tzinfo/definitions/Europe/Vatican.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Vienna.rb +181 -175
- data/lib/tzinfo/definitions/Europe/Vilnius.rb +168 -156
- data/lib/tzinfo/definitions/Europe/Warsaw.rb +210 -201
- data/lib/tzinfo/definitions/Europe/Zagreb.rb +11 -10
- data/lib/tzinfo/definitions/Europe/Zaporozhye.rb +169 -158
- data/lib/tzinfo/definitions/Europe/Zurich.rb +165 -158
- data/lib/tzinfo/definitions/GB.rb +9 -8
- data/lib/tzinfo/definitions/GB__m__Eire.rb +9 -8
- data/lib/tzinfo/definitions/GMT.rb +9 -8
- data/lib/tzinfo/definitions/GMT0.rb +9 -8
- data/lib/tzinfo/definitions/GMT__m__0.rb +9 -8
- data/lib/tzinfo/definitions/GMT__p__0.rb +9 -8
- data/lib/tzinfo/definitions/Greenwich.rb +9 -8
- data/lib/tzinfo/definitions/HST.rb +12 -8
- data/lib/tzinfo/definitions/Hongkong.rb +9 -8
- data/lib/tzinfo/definitions/Iceland.rb +9 -8
- data/lib/tzinfo/definitions/Indian/Antananarivo.rb +19 -13
- data/lib/tzinfo/definitions/Indian/Chagos.rb +18 -12
- data/lib/tzinfo/definitions/Indian/Christmas.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Cocos.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Comoro.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Kerguelen.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Mahe.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Maldives.rb +18 -12
- data/lib/tzinfo/definitions/Indian/Mauritius.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Mayotte.rb +16 -11
- data/lib/tzinfo/definitions/Indian/Reunion.rb +16 -11
- data/lib/tzinfo/definitions/Iran.rb +9 -8
- data/lib/tzinfo/definitions/Israel.rb +9 -8
- data/lib/tzinfo/definitions/Jamaica.rb +9 -8
- data/lib/tzinfo/definitions/Japan.rb +9 -8
- data/lib/tzinfo/definitions/Kwajalein.rb +9 -8
- data/lib/tzinfo/definitions/Libya.rb +9 -8
- data/lib/tzinfo/definitions/MET.rb +173 -168
- data/lib/tzinfo/definitions/MST.rb +12 -8
- data/lib/tzinfo/definitions/MST7MDT.rb +190 -183
- data/lib/tzinfo/definitions/Mexico/BajaNorte.rb +11 -10
- data/lib/tzinfo/definitions/Mexico/BajaSur.rb +11 -10
- data/lib/tzinfo/definitions/Mexico/General.rb +11 -10
- data/lib/tzinfo/definitions/Mideast/Riyadh87.rb +11 -10
- data/lib/tzinfo/definitions/Mideast/Riyadh88.rb +11 -10
- data/lib/tzinfo/definitions/Mideast/Riyadh89.rb +11 -10
- data/lib/tzinfo/definitions/NZ.rb +9 -8
- data/lib/tzinfo/definitions/NZ__m__CHAT.rb +9 -8
- data/lib/tzinfo/definitions/Navajo.rb +9 -8
- data/lib/tzinfo/definitions/PRC.rb +9 -8
- data/lib/tzinfo/definitions/PST8PDT.rb +190 -183
- data/lib/tzinfo/definitions/Pacific/Apia.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Auckland.rb +200 -190
- data/lib/tzinfo/definitions/Pacific/Chatham.rb +169 -163
- data/lib/tzinfo/definitions/Pacific/Easter.rb +189 -180
- data/lib/tzinfo/definitions/Pacific/Efate.rb +37 -31
- data/lib/tzinfo/definitions/Pacific/Enderbury.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Fakaofo.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Fiji.rb +21 -15
- data/lib/tzinfo/definitions/Pacific/Funafuti.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Galapagos.rb +18 -12
- data/lib/tzinfo/definitions/Pacific/Gambier.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Guadalcanal.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Guam.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Honolulu.rb +26 -17
- data/lib/tzinfo/definitions/Pacific/Johnston.rb +14 -10
- data/lib/tzinfo/definitions/Pacific/Kiritimati.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Kosrae.rb +19 -13
- data/lib/tzinfo/definitions/Pacific/Kwajalein.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Majuro.rb +18 -12
- data/lib/tzinfo/definitions/Pacific/Marquesas.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Midway.rb +23 -15
- data/lib/tzinfo/definitions/Pacific/Nauru.rb +21 -14
- data/lib/tzinfo/definitions/Pacific/Niue.rb +20 -13
- data/lib/tzinfo/definitions/Pacific/Norfolk.rb +18 -12
- data/lib/tzinfo/definitions/Pacific/Noumea.rb +23 -17
- data/lib/tzinfo/definitions/Pacific/Pago_Pago.rb +24 -15
- data/lib/tzinfo/definitions/Pacific/Palau.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Pitcairn.rb +18 -12
- data/lib/tzinfo/definitions/Pacific/Ponape.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Port_Moresby.rb +18 -12
- data/lib/tzinfo/definitions/Pacific/Rarotonga.rb +44 -37
- data/lib/tzinfo/definitions/Pacific/Saipan.rb +22 -14
- data/lib/tzinfo/definitions/Pacific/Samoa.rb +11 -10
- data/lib/tzinfo/definitions/Pacific/Tahiti.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Tarawa.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Tongatapu.rb +25 -18
- data/lib/tzinfo/definitions/Pacific/Truk.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Wake.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Wallis.rb +16 -11
- data/lib/tzinfo/definitions/Pacific/Yap.rb +11 -10
- data/lib/tzinfo/definitions/Poland.rb +9 -8
- data/lib/tzinfo/definitions/Portugal.rb +9 -8
- data/lib/tzinfo/definitions/ROC.rb +9 -8
- data/lib/tzinfo/definitions/ROK.rb +9 -8
- data/lib/tzinfo/definitions/Singapore.rb +9 -8
- data/lib/tzinfo/definitions/Turkey.rb +9 -8
- data/lib/tzinfo/definitions/UCT.rb +9 -8
- data/lib/tzinfo/definitions/US/Alaska.rb +11 -10
- data/lib/tzinfo/definitions/US/Aleutian.rb +11 -10
- data/lib/tzinfo/definitions/US/Arizona.rb +11 -10
- data/lib/tzinfo/definitions/US/Central.rb +11 -10
- data/lib/tzinfo/definitions/US/East__m__Indiana.rb +11 -10
- data/lib/tzinfo/definitions/US/Eastern.rb +11 -10
- data/lib/tzinfo/definitions/US/Hawaii.rb +11 -10
- data/lib/tzinfo/definitions/US/Indiana__m__Starke.rb +11 -10
- data/lib/tzinfo/definitions/US/Michigan.rb +11 -10
- data/lib/tzinfo/definitions/US/Mountain.rb +11 -10
- data/lib/tzinfo/definitions/US/Pacific.rb +11 -10
- data/lib/tzinfo/definitions/US/Pacific__m__New.rb +11 -10
- data/lib/tzinfo/definitions/US/Samoa.rb +11 -10
- data/lib/tzinfo/definitions/UTC.rb +9 -8
- data/lib/tzinfo/definitions/Universal.rb +9 -8
- data/lib/tzinfo/definitions/WET.rb +161 -156
- data/lib/tzinfo/definitions/W__m__SU.rb +9 -8
- data/lib/tzinfo/definitions/Zulu.rb +9 -8
- data/lib/tzinfo/indexes/countries.rb +875 -0
- data/lib/tzinfo/indexes/timezones.rb +554 -0
- data/lib/tzinfo/info_timezone.rb +52 -0
- data/lib/tzinfo/linked_timezone.rb +51 -0
- data/lib/tzinfo/linked_timezone_info.rb +44 -0
- data/lib/tzinfo/time_or_datetime.rb +33 -22
- data/lib/tzinfo/timezone.rb +162 -112
- data/lib/tzinfo/timezone_definition.rb +56 -0
- data/lib/tzinfo/timezone_index_definition.rb +72 -0
- data/lib/tzinfo/timezone_info.rb +40 -0
- data/lib/tzinfo/timezone_offset_info.rb +94 -0
- data/lib/tzinfo/timezone_period.rb +110 -53
- data/lib/tzinfo/timezone_proxy.rb +85 -0
- data/lib/tzinfo/timezone_transition_info.rb +127 -0
- data/lib/tzinfo/tzdataparser.rb +261 -203
- data/test/tc_country.rb +63 -38
- data/test/tc_country_index_definition.rb +71 -0
- data/test/tc_country_info.rb +72 -0
- data/test/tc_country_timezone.rb +121 -0
- data/test/tc_data_timezone.rb +69 -0
- data/test/tc_data_timezone_info.rb +282 -0
- data/test/tc_info_timezone.rb +37 -0
- data/test/tc_linked_timezone.rb +97 -0
- data/test/tc_linked_timezone_info.rb +18 -0
- data/test/tc_time_or_datetime.rb +30 -0
- data/test/tc_timezone.rb +536 -319
- data/test/tc_timezone_definition.rb +115 -0
- data/test/tc_timezone_index_definition.rb +75 -0
- data/test/tc_timezone_info.rb +13 -0
- data/test/tc_timezone_offset_info.rb +116 -0
- data/test/tc_timezone_period.rb +298 -78
- data/test/tc_timezone_proxy.rb +23 -13
- data/test/tc_timezone_transition_info.rb +194 -0
- metadata +38 -249
- data/lib/tzinfo/countries/AD.rb +0 -12
- data/lib/tzinfo/countries/AE.rb +0 -12
- data/lib/tzinfo/countries/AF.rb +0 -12
- data/lib/tzinfo/countries/AG.rb +0 -12
- data/lib/tzinfo/countries/AI.rb +0 -12
- data/lib/tzinfo/countries/AL.rb +0 -12
- data/lib/tzinfo/countries/AM.rb +0 -12
- data/lib/tzinfo/countries/AN.rb +0 -12
- data/lib/tzinfo/countries/AO.rb +0 -12
- data/lib/tzinfo/countries/AQ.rb +0 -21
- data/lib/tzinfo/countries/AR.rb +0 -21
- data/lib/tzinfo/countries/AS.rb +0 -12
- data/lib/tzinfo/countries/AT.rb +0 -12
- data/lib/tzinfo/countries/AU.rb +0 -22
- data/lib/tzinfo/countries/AW.rb +0 -12
- data/lib/tzinfo/countries/AX.rb +0 -12
- data/lib/tzinfo/countries/AZ.rb +0 -12
- data/lib/tzinfo/countries/BA.rb +0 -12
- data/lib/tzinfo/countries/BB.rb +0 -12
- data/lib/tzinfo/countries/BD.rb +0 -12
- data/lib/tzinfo/countries/BE.rb +0 -12
- data/lib/tzinfo/countries/BF.rb +0 -12
- data/lib/tzinfo/countries/BG.rb +0 -12
- data/lib/tzinfo/countries/BH.rb +0 -12
- data/lib/tzinfo/countries/BI.rb +0 -12
- data/lib/tzinfo/countries/BJ.rb +0 -12
- data/lib/tzinfo/countries/BM.rb +0 -12
- data/lib/tzinfo/countries/BN.rb +0 -12
- data/lib/tzinfo/countries/BO.rb +0 -12
- data/lib/tzinfo/countries/BR.rb +0 -26
- data/lib/tzinfo/countries/BS.rb +0 -12
- data/lib/tzinfo/countries/BT.rb +0 -12
- data/lib/tzinfo/countries/BV.rb +0 -11
- data/lib/tzinfo/countries/BW.rb +0 -12
- data/lib/tzinfo/countries/BY.rb +0 -12
- data/lib/tzinfo/countries/BZ.rb +0 -12
- data/lib/tzinfo/countries/CA.rb +0 -36
- data/lib/tzinfo/countries/CC.rb +0 -12
- data/lib/tzinfo/countries/CD.rb +0 -13
- data/lib/tzinfo/countries/CF.rb +0 -12
- data/lib/tzinfo/countries/CG.rb +0 -12
- data/lib/tzinfo/countries/CH.rb +0 -12
- data/lib/tzinfo/countries/CI.rb +0 -12
- data/lib/tzinfo/countries/CK.rb +0 -12
- data/lib/tzinfo/countries/CL.rb +0 -13
- data/lib/tzinfo/countries/CM.rb +0 -12
- data/lib/tzinfo/countries/CN.rb +0 -16
- data/lib/tzinfo/countries/CO.rb +0 -12
- data/lib/tzinfo/countries/CR.rb +0 -12
- data/lib/tzinfo/countries/CS.rb +0 -12
- data/lib/tzinfo/countries/CU.rb +0 -12
- data/lib/tzinfo/countries/CV.rb +0 -12
- data/lib/tzinfo/countries/CX.rb +0 -12
- data/lib/tzinfo/countries/CY.rb +0 -12
- data/lib/tzinfo/countries/CZ.rb +0 -12
- data/lib/tzinfo/countries/DE.rb +0 -12
- data/lib/tzinfo/countries/DJ.rb +0 -12
- data/lib/tzinfo/countries/DK.rb +0 -12
- data/lib/tzinfo/countries/DM.rb +0 -12
- data/lib/tzinfo/countries/DO.rb +0 -12
- data/lib/tzinfo/countries/DZ.rb +0 -12
- data/lib/tzinfo/countries/EC.rb +0 -13
- data/lib/tzinfo/countries/EE.rb +0 -12
- data/lib/tzinfo/countries/EG.rb +0 -12
- data/lib/tzinfo/countries/EH.rb +0 -12
- data/lib/tzinfo/countries/ER.rb +0 -12
- data/lib/tzinfo/countries/ES.rb +0 -14
- data/lib/tzinfo/countries/ET.rb +0 -12
- data/lib/tzinfo/countries/FI.rb +0 -12
- data/lib/tzinfo/countries/FJ.rb +0 -12
- data/lib/tzinfo/countries/FK.rb +0 -12
- data/lib/tzinfo/countries/FM.rb +0 -14
- data/lib/tzinfo/countries/FO.rb +0 -12
- data/lib/tzinfo/countries/FR.rb +0 -12
- data/lib/tzinfo/countries/GA.rb +0 -12
- data/lib/tzinfo/countries/GB.rb +0 -12
- data/lib/tzinfo/countries/GD.rb +0 -12
- data/lib/tzinfo/countries/GE.rb +0 -12
- data/lib/tzinfo/countries/GF.rb +0 -12
- data/lib/tzinfo/countries/GH.rb +0 -12
- data/lib/tzinfo/countries/GI.rb +0 -12
- data/lib/tzinfo/countries/GL.rb +0 -15
- data/lib/tzinfo/countries/GM.rb +0 -12
- data/lib/tzinfo/countries/GN.rb +0 -12
- data/lib/tzinfo/countries/GP.rb +0 -12
- data/lib/tzinfo/countries/GQ.rb +0 -12
- data/lib/tzinfo/countries/GR.rb +0 -12
- data/lib/tzinfo/countries/GS.rb +0 -12
- data/lib/tzinfo/countries/GT.rb +0 -12
- data/lib/tzinfo/countries/GU.rb +0 -12
- data/lib/tzinfo/countries/GW.rb +0 -12
- data/lib/tzinfo/countries/GY.rb +0 -12
- data/lib/tzinfo/countries/HK.rb +0 -12
- data/lib/tzinfo/countries/HM.rb +0 -11
- data/lib/tzinfo/countries/HN.rb +0 -12
- data/lib/tzinfo/countries/HR.rb +0 -12
- data/lib/tzinfo/countries/HT.rb +0 -12
- data/lib/tzinfo/countries/HU.rb +0 -12
- data/lib/tzinfo/countries/ID.rb +0 -15
- data/lib/tzinfo/countries/IE.rb +0 -12
- data/lib/tzinfo/countries/IL.rb +0 -12
- data/lib/tzinfo/countries/IN.rb +0 -12
- data/lib/tzinfo/countries/IO.rb +0 -12
- data/lib/tzinfo/countries/IQ.rb +0 -12
- data/lib/tzinfo/countries/IR.rb +0 -12
- data/lib/tzinfo/countries/IS.rb +0 -12
- data/lib/tzinfo/countries/IT.rb +0 -12
- data/lib/tzinfo/countries/Index.rb +0 -253
- data/lib/tzinfo/countries/JM.rb +0 -12
- data/lib/tzinfo/countries/JO.rb +0 -12
- data/lib/tzinfo/countries/JP.rb +0 -12
- data/lib/tzinfo/countries/KE.rb +0 -12
- data/lib/tzinfo/countries/KG.rb +0 -12
- data/lib/tzinfo/countries/KH.rb +0 -12
- data/lib/tzinfo/countries/KI.rb +0 -14
- data/lib/tzinfo/countries/KM.rb +0 -12
- data/lib/tzinfo/countries/KN.rb +0 -12
- data/lib/tzinfo/countries/KP.rb +0 -12
- data/lib/tzinfo/countries/KR.rb +0 -12
- data/lib/tzinfo/countries/KW.rb +0 -12
- data/lib/tzinfo/countries/KY.rb +0 -12
- data/lib/tzinfo/countries/KZ.rb +0 -16
- data/lib/tzinfo/countries/LA.rb +0 -12
- data/lib/tzinfo/countries/LB.rb +0 -12
- data/lib/tzinfo/countries/LC.rb +0 -12
- data/lib/tzinfo/countries/LI.rb +0 -12
- data/lib/tzinfo/countries/LK.rb +0 -12
- data/lib/tzinfo/countries/LR.rb +0 -12
- data/lib/tzinfo/countries/LS.rb +0 -12
- data/lib/tzinfo/countries/LT.rb +0 -12
- data/lib/tzinfo/countries/LU.rb +0 -12
- data/lib/tzinfo/countries/LV.rb +0 -12
- data/lib/tzinfo/countries/LY.rb +0 -12
- data/lib/tzinfo/countries/MA.rb +0 -12
- data/lib/tzinfo/countries/MC.rb +0 -12
- data/lib/tzinfo/countries/MD.rb +0 -12
- data/lib/tzinfo/countries/MG.rb +0 -12
- data/lib/tzinfo/countries/MH.rb +0 -13
- data/lib/tzinfo/countries/MK.rb +0 -12
- data/lib/tzinfo/countries/ML.rb +0 -12
- data/lib/tzinfo/countries/MM.rb +0 -12
- data/lib/tzinfo/countries/MN.rb +0 -14
- data/lib/tzinfo/countries/MO.rb +0 -12
- data/lib/tzinfo/countries/MP.rb +0 -12
- data/lib/tzinfo/countries/MQ.rb +0 -12
- data/lib/tzinfo/countries/MR.rb +0 -12
- data/lib/tzinfo/countries/MS.rb +0 -12
- data/lib/tzinfo/countries/MT.rb +0 -12
- data/lib/tzinfo/countries/MU.rb +0 -12
- data/lib/tzinfo/countries/MV.rb +0 -12
- data/lib/tzinfo/countries/MW.rb +0 -12
- data/lib/tzinfo/countries/MX.rb +0 -19
- data/lib/tzinfo/countries/MY.rb +0 -13
- data/lib/tzinfo/countries/MZ.rb +0 -12
- data/lib/tzinfo/countries/NA.rb +0 -12
- data/lib/tzinfo/countries/NC.rb +0 -12
- data/lib/tzinfo/countries/NE.rb +0 -12
- data/lib/tzinfo/countries/NF.rb +0 -12
- data/lib/tzinfo/countries/NG.rb +0 -12
- data/lib/tzinfo/countries/NI.rb +0 -12
- data/lib/tzinfo/countries/NL.rb +0 -12
- data/lib/tzinfo/countries/NO.rb +0 -12
- data/lib/tzinfo/countries/NP.rb +0 -12
- data/lib/tzinfo/countries/NR.rb +0 -12
- data/lib/tzinfo/countries/NU.rb +0 -12
- data/lib/tzinfo/countries/NZ.rb +0 -13
- data/lib/tzinfo/countries/OM.rb +0 -12
- data/lib/tzinfo/countries/PA.rb +0 -12
- data/lib/tzinfo/countries/PE.rb +0 -12
- data/lib/tzinfo/countries/PF.rb +0 -14
- data/lib/tzinfo/countries/PG.rb +0 -12
- data/lib/tzinfo/countries/PH.rb +0 -12
- data/lib/tzinfo/countries/PK.rb +0 -12
- data/lib/tzinfo/countries/PL.rb +0 -12
- data/lib/tzinfo/countries/PM.rb +0 -12
- data/lib/tzinfo/countries/PN.rb +0 -12
- data/lib/tzinfo/countries/PR.rb +0 -12
- data/lib/tzinfo/countries/PS.rb +0 -12
- data/lib/tzinfo/countries/PT.rb +0 -14
- data/lib/tzinfo/countries/PW.rb +0 -12
- data/lib/tzinfo/countries/PY.rb +0 -12
- data/lib/tzinfo/countries/QA.rb +0 -12
- data/lib/tzinfo/countries/RE.rb +0 -12
- data/lib/tzinfo/countries/RO.rb +0 -12
- data/lib/tzinfo/countries/RU.rb +0 -25
- data/lib/tzinfo/countries/RW.rb +0 -12
- data/lib/tzinfo/countries/SA.rb +0 -12
- data/lib/tzinfo/countries/SB.rb +0 -12
- data/lib/tzinfo/countries/SC.rb +0 -12
- data/lib/tzinfo/countries/SD.rb +0 -12
- data/lib/tzinfo/countries/SE.rb +0 -12
- data/lib/tzinfo/countries/SG.rb +0 -12
- data/lib/tzinfo/countries/SH.rb +0 -12
- data/lib/tzinfo/countries/SI.rb +0 -12
- data/lib/tzinfo/countries/SJ.rb +0 -13
- data/lib/tzinfo/countries/SK.rb +0 -12
- data/lib/tzinfo/countries/SL.rb +0 -12
- data/lib/tzinfo/countries/SM.rb +0 -12
- data/lib/tzinfo/countries/SN.rb +0 -12
- data/lib/tzinfo/countries/SO.rb +0 -12
- data/lib/tzinfo/countries/SR.rb +0 -12
- data/lib/tzinfo/countries/ST.rb +0 -12
- data/lib/tzinfo/countries/SV.rb +0 -12
- data/lib/tzinfo/countries/SY.rb +0 -12
- data/lib/tzinfo/countries/SZ.rb +0 -12
- data/lib/tzinfo/countries/TC.rb +0 -12
- data/lib/tzinfo/countries/TD.rb +0 -12
- data/lib/tzinfo/countries/TF.rb +0 -12
- data/lib/tzinfo/countries/TG.rb +0 -12
- data/lib/tzinfo/countries/TH.rb +0 -12
- data/lib/tzinfo/countries/TJ.rb +0 -12
- data/lib/tzinfo/countries/TK.rb +0 -12
- data/lib/tzinfo/countries/TL.rb +0 -12
- data/lib/tzinfo/countries/TM.rb +0 -12
- data/lib/tzinfo/countries/TN.rb +0 -12
- data/lib/tzinfo/countries/TO.rb +0 -12
- data/lib/tzinfo/countries/TR.rb +0 -12
- data/lib/tzinfo/countries/TT.rb +0 -12
- data/lib/tzinfo/countries/TV.rb +0 -12
- data/lib/tzinfo/countries/TW.rb +0 -12
- data/lib/tzinfo/countries/TZ.rb +0 -12
- data/lib/tzinfo/countries/UA.rb +0 -15
- data/lib/tzinfo/countries/UG.rb +0 -12
- data/lib/tzinfo/countries/UM.rb +0 -14
- data/lib/tzinfo/countries/US.rb +0 -36
- data/lib/tzinfo/countries/UY.rb +0 -12
- data/lib/tzinfo/countries/UZ.rb +0 -13
- data/lib/tzinfo/countries/VA.rb +0 -12
- data/lib/tzinfo/countries/VC.rb +0 -12
- data/lib/tzinfo/countries/VE.rb +0 -12
- data/lib/tzinfo/countries/VG.rb +0 -12
- data/lib/tzinfo/countries/VI.rb +0 -12
- data/lib/tzinfo/countries/VN.rb +0 -12
- data/lib/tzinfo/countries/VU.rb +0 -12
- data/lib/tzinfo/countries/WF.rb +0 -12
- data/lib/tzinfo/countries/WS.rb +0 -12
- data/lib/tzinfo/countries/YE.rb +0 -12
- data/lib/tzinfo/countries/YT.rb +0 -12
- data/lib/tzinfo/countries/ZA.rb +0 -12
- data/lib/tzinfo/countries/ZM.rb +0 -12
- data/lib/tzinfo/countries/ZW.rb +0 -12
- data/lib/tzinfo/timezone_period_list.rb +0 -234
- data/test/tc_timezone_period_list.rb +0 -310
@@ -0,0 +1,52 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2006 Philip Ross
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
9
|
+
# furnished to do so, subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be included in all
|
12
|
+
# copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
# THE SOFTWARE.
|
21
|
+
#++
|
22
|
+
|
23
|
+
require 'tzinfo/timezone'
|
24
|
+
|
25
|
+
module TZInfo
|
26
|
+
|
27
|
+
# A Timezone based on a TimezoneInfo.
|
28
|
+
class InfoTimezone < Timezone #:nodoc:
|
29
|
+
|
30
|
+
# Constructs a new InfoTimezone with a TimezoneInfo instance.
|
31
|
+
def self.new(info)
|
32
|
+
tz = super()
|
33
|
+
tz.send(:setup, info)
|
34
|
+
tz
|
35
|
+
end
|
36
|
+
|
37
|
+
# The identifier of the timezone, e.g. "Europe/Paris".
|
38
|
+
def identifier
|
39
|
+
@info.identifier
|
40
|
+
end
|
41
|
+
|
42
|
+
protected
|
43
|
+
# The TimezoneInfo for this Timezone.
|
44
|
+
def info
|
45
|
+
@info
|
46
|
+
end
|
47
|
+
|
48
|
+
def setup(info)
|
49
|
+
@info = info
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2006 Philip Ross
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
9
|
+
# furnished to do so, subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be included in all
|
12
|
+
# copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
# THE SOFTWARE.
|
21
|
+
#++
|
22
|
+
|
23
|
+
require 'tzinfo/info_timezone'
|
24
|
+
|
25
|
+
module TZInfo
|
26
|
+
|
27
|
+
class LinkedTimezone < InfoTimezone #:nodoc:
|
28
|
+
# Returns the TimezonePeriod for the given UTC time. utc can either be
|
29
|
+
# a DateTime, Time or integer timestamp (Time.to_i). Any timezone
|
30
|
+
# information in utc is ignored (it is treated as a UTC time).
|
31
|
+
#
|
32
|
+
# If no TimezonePeriod could be found, PeriodNotFound is raised.
|
33
|
+
def period_for_utc(utc)
|
34
|
+
@linked_timezone.period_for_utc(utc)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Returns the set of TimezonePeriod instances that are valid for the given
|
38
|
+
# local time as an array. If you just want a single period, use
|
39
|
+
# period_for_local instead and specify how abiguities should be resolved.
|
40
|
+
# Raises PeriodNotFound if no periods are found for the given time.
|
41
|
+
def periods_for_local(local)
|
42
|
+
@linked_timezone.periods_for_local(local)
|
43
|
+
end
|
44
|
+
|
45
|
+
protected
|
46
|
+
def setup(info)
|
47
|
+
super(info)
|
48
|
+
@linked_timezone = Timezone.get(info.link_to_identifier)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2006 Philip Ross
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
9
|
+
# furnished to do so, subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be included in all
|
12
|
+
# copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
# THE SOFTWARE.
|
21
|
+
#++
|
22
|
+
|
23
|
+
require 'tzinfo/timezone_info'
|
24
|
+
|
25
|
+
module TZInfo
|
26
|
+
# Represents a linked timezone defined in a data module.
|
27
|
+
class LinkedTimezoneInfo < TimezoneInfo #:nodoc:
|
28
|
+
|
29
|
+
# The zone that provides the data (that this zone is an alias for).
|
30
|
+
attr_reader :link_to_identifier
|
31
|
+
|
32
|
+
# Constructs a new TimezoneInfo with an identifier and the identifier
|
33
|
+
# of the zone linked to.
|
34
|
+
def initialize(identifier, link_to_identifier)
|
35
|
+
super(identifier)
|
36
|
+
@link_to_identifier = link_to_identifier
|
37
|
+
end
|
38
|
+
|
39
|
+
# Returns internal object state as a programmer-readable string.
|
40
|
+
def inspect
|
41
|
+
"#<#{self.class}: #@identifier,#@link_to_identifier>"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -54,8 +54,8 @@ module TZInfo
|
|
54
54
|
|
55
55
|
# Returns the time as a Time.
|
56
56
|
def to_time
|
57
|
-
|
58
|
-
if
|
57
|
+
unless @time
|
58
|
+
if @timestamp
|
59
59
|
@time = Time.at(@timestamp).utc
|
60
60
|
else
|
61
61
|
@time = Time.utc(year, mon, mday, hour, min, sec)
|
@@ -67,7 +67,7 @@ module TZInfo
|
|
67
67
|
|
68
68
|
# Returns the time as a DateTime.
|
69
69
|
def to_datetime
|
70
|
-
|
70
|
+
unless @datetime
|
71
71
|
@datetime = DateTime.new(year, mon, mday, hour, min, sec)
|
72
72
|
end
|
73
73
|
|
@@ -76,7 +76,7 @@ module TZInfo
|
|
76
76
|
|
77
77
|
# Returns the time as an integer timestamp.
|
78
78
|
def to_i
|
79
|
-
|
79
|
+
unless @timestamp
|
80
80
|
@timestamp = to_time.to_i
|
81
81
|
end
|
82
82
|
|
@@ -99,11 +99,16 @@ module TZInfo
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
# Returns internal object state as a programmer-readable string.
|
103
|
+
def inspect
|
104
|
+
"#<#{self.class}: #{@orig.inspect}>"
|
105
|
+
end
|
106
|
+
|
102
107
|
# Returns the year.
|
103
108
|
def year
|
104
|
-
if
|
109
|
+
if @time
|
105
110
|
@time.year
|
106
|
-
elsif
|
111
|
+
elsif @datetime
|
107
112
|
@datetime.year
|
108
113
|
else
|
109
114
|
to_time.year
|
@@ -112,9 +117,9 @@ module TZInfo
|
|
112
117
|
|
113
118
|
# Returns the month of the year (1..12).
|
114
119
|
def mon
|
115
|
-
if
|
120
|
+
if @time
|
116
121
|
@time.mon
|
117
|
-
elsif
|
122
|
+
elsif @datetime
|
118
123
|
@datetime.mon
|
119
124
|
else
|
120
125
|
to_time.mon
|
@@ -124,9 +129,9 @@ module TZInfo
|
|
124
129
|
|
125
130
|
# Returns the day of the month (1..n).
|
126
131
|
def mday
|
127
|
-
if
|
132
|
+
if @time
|
128
133
|
@time.mday
|
129
|
-
elsif
|
134
|
+
elsif @datetime
|
130
135
|
@datetime.mday
|
131
136
|
else
|
132
137
|
to_time.mday
|
@@ -136,9 +141,9 @@ module TZInfo
|
|
136
141
|
|
137
142
|
# Returns the hour of the day (0..23).
|
138
143
|
def hour
|
139
|
-
if
|
144
|
+
if @time
|
140
145
|
@time.hour
|
141
|
-
elsif
|
146
|
+
elsif @datetime
|
142
147
|
@datetime.hour
|
143
148
|
else
|
144
149
|
to_time.hour
|
@@ -147,9 +152,9 @@ module TZInfo
|
|
147
152
|
|
148
153
|
# Returns the minute of the hour (0..59).
|
149
154
|
def min
|
150
|
-
if
|
155
|
+
if @time
|
151
156
|
@time.min
|
152
|
-
elsif
|
157
|
+
elsif @datetime
|
153
158
|
@datetime.min
|
154
159
|
else
|
155
160
|
to_time.min
|
@@ -158,9 +163,9 @@ module TZInfo
|
|
158
163
|
|
159
164
|
# Returns the second of the minute (0..60). (60 for a leap second).
|
160
165
|
def sec
|
161
|
-
if
|
166
|
+
if @time
|
162
167
|
@time.sec
|
163
|
-
elsif
|
168
|
+
elsif @datetime
|
164
169
|
@datetime.sec
|
165
170
|
else
|
166
171
|
to_time.sec
|
@@ -243,6 +248,18 @@ module TZInfo
|
|
243
248
|
end
|
244
249
|
end
|
245
250
|
|
251
|
+
# Returns true if todt represents the same time and was originally
|
252
|
+
# constructed with the same type (DateTime, Time or timestamp) as this
|
253
|
+
# TimeOrDateTime.
|
254
|
+
def eql?(todt)
|
255
|
+
todt.respond_to?(:to_orig) && to_orig.eql?(todt.to_orig)
|
256
|
+
end
|
257
|
+
|
258
|
+
# Returns a hash of this TimeOrDateTime.
|
259
|
+
def hash
|
260
|
+
@orig.hash
|
261
|
+
end
|
262
|
+
|
246
263
|
# If no block is given, returns a TimeOrDateTime wrapping the given
|
247
264
|
# timeOrDateTime. If a block is specified, a TimeOrDateTime is constructed
|
248
265
|
# and passed to the block. The result of the block must be a TimeOrDateTime.
|
@@ -271,11 +288,5 @@ module TZInfo
|
|
271
288
|
t
|
272
289
|
end
|
273
290
|
end
|
274
|
-
|
275
|
-
protected
|
276
|
-
# The time in the format it was originally constructed.
|
277
|
-
def orig
|
278
|
-
@orig
|
279
|
-
end
|
280
291
|
end
|
281
292
|
end
|
data/lib/tzinfo/timezone.rb
CHANGED
@@ -24,7 +24,6 @@ require 'date'
|
|
24
24
|
require 'tzinfo/country'
|
25
25
|
require 'tzinfo/time_or_datetime'
|
26
26
|
require 'tzinfo/timezone_period'
|
27
|
-
require 'tzinfo/timezone_period_list'
|
28
27
|
|
29
28
|
module TZInfo
|
30
29
|
# Indicate a specified time in a local timezone has more than one
|
@@ -35,12 +34,15 @@ module TZInfo
|
|
35
34
|
class AmbiguousTime < StandardError
|
36
35
|
end
|
37
36
|
|
37
|
+
# Thrown to indicate that no TimezonePeriod matching a given time could be found.
|
38
|
+
class PeriodNotFound < StandardError
|
39
|
+
end
|
40
|
+
|
38
41
|
# Thrown by Timezone#get if the identifier given is not valid.
|
39
42
|
class InvalidTimezoneIdentifier < StandardError
|
40
43
|
end
|
41
44
|
|
42
|
-
# Thrown if an attempt is made to
|
43
|
-
# with Timezone.new(nil).
|
45
|
+
# Thrown if an attempt is made to use a timezone created with Timezone.new(nil).
|
44
46
|
class UnknownTimezone < StandardError
|
45
47
|
end
|
46
48
|
|
@@ -66,13 +68,16 @@ module TZInfo
|
|
66
68
|
# has already been loaded.
|
67
69
|
@@loaded_zones = {}
|
68
70
|
|
71
|
+
# Whether the timezones index has been loaded yet.
|
72
|
+
@@index_loaded = false
|
73
|
+
|
69
74
|
# Returns a timezone by its identifier (e.g. "Europe/London",
|
70
75
|
# "America/Chicago" or "UTC").
|
71
76
|
#
|
72
|
-
# Raises
|
77
|
+
# Raises InvalidTimezoneIdentifier if the timezone couldn't be found.
|
73
78
|
def self.get(identifier)
|
74
79
|
instance = @@loaded_zones[identifier]
|
75
|
-
|
80
|
+
unless instance
|
76
81
|
raise InvalidTimezoneIdentifier, 'Invalid identifier' if identifier !~ /^[A-z0-9\+\-_]+(\/[A-z0-9\+\-_]+)*$/
|
77
82
|
identifier = identifier.gsub(/-/, '__m__').gsub(/\+/, '__p__')
|
78
83
|
begin
|
@@ -82,7 +87,20 @@ module TZInfo
|
|
82
87
|
identifier.split(/\//).each {|part|
|
83
88
|
m = m.const_get(part)
|
84
89
|
}
|
85
|
-
|
90
|
+
|
91
|
+
info = m.get
|
92
|
+
|
93
|
+
# Could make Timezone subclasses register an interest in an info
|
94
|
+
# type. Since there are currently only two however, there isn't
|
95
|
+
# much point.
|
96
|
+
if info.kind_of?(DataTimezoneInfo)
|
97
|
+
instance = DataTimezone.new(info)
|
98
|
+
elsif info.kind_of?(LinkedTimezoneInfo)
|
99
|
+
instance = LinkedTimezone.new(info)
|
100
|
+
else
|
101
|
+
raise InvalidTimezoneIdentifier, "No handler for info type #{info.class}"
|
102
|
+
end
|
103
|
+
|
86
104
|
@@loaded_zones[instance.identifier] = instance
|
87
105
|
rescue LoadError, NameError => e
|
88
106
|
raise InvalidTimezoneIdentifier, e.message
|
@@ -92,8 +110,17 @@ module TZInfo
|
|
92
110
|
instance
|
93
111
|
end
|
94
112
|
|
95
|
-
#
|
96
|
-
#
|
113
|
+
# Returns a proxy for the Timezone with the given identifier. The proxy
|
114
|
+
# will cause the real timezone to be loaded when an attempt is made to
|
115
|
+
# find a period or convert a time. get_proxy will not validate the
|
116
|
+
# identifier. If an invalid identifier is specified, no exception will be
|
117
|
+
# raised until the proxy is used.
|
118
|
+
def self.get_proxy(identifier)
|
119
|
+
TimezoneProxy.new(identifier)
|
120
|
+
end
|
121
|
+
|
122
|
+
# If identifier is nil calls super(), otherwise calls get. An identfier
|
123
|
+
# should always be passed in when called externally.
|
97
124
|
def self.new(identifier = nil)
|
98
125
|
if identifier
|
99
126
|
get(identifier)
|
@@ -102,18 +129,51 @@ module TZInfo
|
|
102
129
|
end
|
103
130
|
end
|
104
131
|
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
132
|
+
# Returns an array containing all the available Timezones.
|
133
|
+
#
|
134
|
+
# Returns TimezoneProxy objects to avoid the overhead of loading Timezone
|
135
|
+
# definitions until a conversion is actually required.
|
108
136
|
def self.all
|
109
|
-
|
137
|
+
get_proxies(all_identifiers)
|
110
138
|
end
|
111
139
|
|
112
|
-
#
|
113
|
-
#
|
114
|
-
# non-country specific zones.
|
140
|
+
# Returns an array containing the identifiers of all the available
|
141
|
+
# Timezones.
|
115
142
|
def self.all_identifiers
|
116
|
-
|
143
|
+
load_index
|
144
|
+
Indexes::Timezones.timezones
|
145
|
+
end
|
146
|
+
|
147
|
+
# Returns an array containing all the available Timezones that are based
|
148
|
+
# on data (are not links to other Timezones).
|
149
|
+
#
|
150
|
+
# Returns TimezoneProxy objects to avoid the overhead of loading Timezone
|
151
|
+
# definitions until a conversion is actually required.
|
152
|
+
def self.all_data_zones
|
153
|
+
get_proxies(all_data_zone_identifiers)
|
154
|
+
end
|
155
|
+
|
156
|
+
# Returns an array containing the identifiers of all the available
|
157
|
+
# Timezones that are based on data (are not links to other Timezones)..
|
158
|
+
def self.all_data_zone_identifiers
|
159
|
+
load_index
|
160
|
+
Indexes::Timezones.data_timezones
|
161
|
+
end
|
162
|
+
|
163
|
+
# Returns an array containing all the available Timezones that are links
|
164
|
+
# to other Timezones.
|
165
|
+
#
|
166
|
+
# Returns TimezoneProxy objects to avoid the overhead of loading Timezone
|
167
|
+
# definitions until a conversion is actually required.
|
168
|
+
def self.all_linked_zones
|
169
|
+
get_proxies(all_linked_zone_identifiers)
|
170
|
+
end
|
171
|
+
|
172
|
+
# Returns an array containing the identifiers of all the available
|
173
|
+
# Timezones that are links to other Timezones.
|
174
|
+
def self.all_linked_zone_identifiers
|
175
|
+
load_index
|
176
|
+
Indexes::Timezones.linked_timezones
|
117
177
|
end
|
118
178
|
|
119
179
|
# Returns all the Timezones defined for all Countries. This is not the
|
@@ -155,7 +215,7 @@ module TZInfo
|
|
155
215
|
|
156
216
|
# The identifier of the timezone, e.g. "Europe/Paris".
|
157
217
|
def identifier
|
158
|
-
'
|
218
|
+
raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
|
159
219
|
end
|
160
220
|
|
161
221
|
# An alias for identifier.
|
@@ -164,14 +224,26 @@ module TZInfo
|
|
164
224
|
identifier
|
165
225
|
end
|
166
226
|
|
167
|
-
# Returns a friendlier version of the
|
227
|
+
# Returns a friendlier version of the identifier.
|
168
228
|
def to_s
|
169
229
|
friendly_identifier
|
170
|
-
end
|
230
|
+
end
|
171
231
|
|
172
|
-
# Returns
|
232
|
+
# Returns internal object state as a programmer-readable string.
|
233
|
+
def inspect
|
234
|
+
"#<#{self.class}: #{identifier}>"
|
235
|
+
end
|
236
|
+
|
237
|
+
# Returns a friendlier version of the identifier. Set skip_first_part to
|
173
238
|
# omit the first part of the identifier (typically a region name) where
|
174
239
|
# there is more than one part.
|
240
|
+
#
|
241
|
+
# For example:
|
242
|
+
#
|
243
|
+
# Timezone.get('Europe/Paris').friendly_identifier(false) #=> "Europe - Paris"
|
244
|
+
# Timezone.get('Europe/Paris').friendly_identifier(true) #=> "Paris"
|
245
|
+
# Timezone.get('America/Indiana/Knox').friendly_identifier(false) #=> "America - Knox, Indiana"
|
246
|
+
# Timezone.get('America/Indiana/Knox').friendly_identifier(true) #=> "Knox, Indiana"
|
175
247
|
def friendly_identifier(skip_first_part = false)
|
176
248
|
parts = identifier.split('/')
|
177
249
|
if parts.empty?
|
@@ -211,10 +283,16 @@ module TZInfo
|
|
211
283
|
# Returns the TimezonePeriod for the given UTC time. utc can either be
|
212
284
|
# a DateTime, Time or integer timestamp (Time.to_i). Any timezone
|
213
285
|
# information in utc is ignored (it is treated as a UTC time).
|
214
|
-
#
|
215
|
-
# If no TimezonePeriod could be found, PeriodNotFound is raised.
|
216
286
|
def period_for_utc(utc)
|
217
|
-
|
287
|
+
raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
|
288
|
+
end
|
289
|
+
|
290
|
+
# Returns the set of TimezonePeriod instances that are valid for the given
|
291
|
+
# local time as an array. If you just want a single period, use
|
292
|
+
# period_for_local instead and specify how ambiguities should be resolved.
|
293
|
+
# Returns an empty array if no periods are found for the given time.
|
294
|
+
def periods_for_local(local)
|
295
|
+
raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
|
218
296
|
end
|
219
297
|
|
220
298
|
# Returns the TimezonePeriod for the given local time. local can either be
|
@@ -228,10 +306,10 @@ module TZInfo
|
|
228
306
|
# transition from daylight savings time to standard time).
|
229
307
|
#
|
230
308
|
# In the first case (no equivalent UTC time), a PeriodNotFound exception
|
231
|
-
# will be
|
309
|
+
# will be raised.
|
232
310
|
#
|
233
311
|
# In the second case (more than one equivalent UTC time), an AmbiguousTime
|
234
|
-
# exception will be
|
312
|
+
# exception will be raised unless the optional dst parameter or block
|
235
313
|
# handles the ambiguity.
|
236
314
|
#
|
237
315
|
# If the ambiguity is due to a transition from daylight savings time to
|
@@ -252,10 +330,11 @@ module TZInfo
|
|
252
330
|
# return a single period or return nil or an empty array
|
253
331
|
# to cause an AmbiguousTime exception to be raised.
|
254
332
|
def period_for_local(local, dst = nil)
|
255
|
-
results =
|
333
|
+
results = periods_for_local(local)
|
256
334
|
|
257
|
-
|
258
|
-
|
335
|
+
if results.empty?
|
336
|
+
raise PeriodNotFound
|
337
|
+
elsif results.size < 2
|
259
338
|
results.first
|
260
339
|
else
|
261
340
|
# ambiguous result try to resolve
|
@@ -276,7 +355,7 @@ module TZInfo
|
|
276
355
|
|
277
356
|
if results.is_a?(TimezonePeriod)
|
278
357
|
results
|
279
|
-
elsif
|
358
|
+
elsif results && results.size == 1
|
280
359
|
results.first
|
281
360
|
else
|
282
361
|
raise AmbiguousTime, "#{local} is an ambiguous local time."
|
@@ -306,10 +385,10 @@ module TZInfo
|
|
306
385
|
# transition from daylight savings time to standard time).
|
307
386
|
#
|
308
387
|
# In the first case (no equivalent UTC time), a PeriodNotFound exception
|
309
|
-
# will be
|
388
|
+
# will be raised.
|
310
389
|
#
|
311
390
|
# In the second case (more than one equivalent UTC time), an AmbiguousTime
|
312
|
-
# exception will be
|
391
|
+
# exception will be raised unless the optional dst parameter or block
|
313
392
|
# handles the ambiguity.
|
314
393
|
#
|
315
394
|
# If the ambiguity is due to a transition from daylight savings time to
|
@@ -359,98 +438,69 @@ module TZInfo
|
|
359
438
|
end
|
360
439
|
|
361
440
|
alias :current_time_and_period :current_period_and_time
|
362
|
-
|
363
|
-
#
|
364
|
-
|
365
|
-
|
441
|
+
|
442
|
+
# Converts a time in UTC to local time and returns it as a string
|
443
|
+
# according to the given format. The formatting is identical to
|
444
|
+
# Time.strftime and DateTime.strftime, except %Z is replaced with the
|
445
|
+
# timezone abbreviation for the specified time (for example, EST or EDT).
|
446
|
+
def strftime(format, utc = Time.now.utc)
|
447
|
+
period = period_for_utc(utc)
|
448
|
+
local = period.to_local(utc)
|
449
|
+
local = Time.at(local).utc unless local.kind_of?(Time) || local.kind_of?(DateTime)
|
450
|
+
abbreviation = period.abbreviation.to_s.gsub(/%/, '%%')
|
451
|
+
|
452
|
+
format = format.gsub(/(.?)%Z/) do
|
453
|
+
if $1 == '%'
|
454
|
+
# return %%Z so the real strftime treats it as a literal %Z too
|
455
|
+
'%%Z'
|
456
|
+
else
|
457
|
+
"#$1#{abbreviation}"
|
458
|
+
end
|
459
|
+
end
|
460
|
+
|
461
|
+
local.strftime(format)
|
366
462
|
end
|
367
463
|
|
368
|
-
#
|
464
|
+
# Compares two Timezones based on their identifier. Returns -1 if tz is less
|
369
465
|
# than self, 0 if tz is equal to self and +1 if tz is greater than self.
|
370
466
|
def <=>(tz)
|
371
467
|
identifier <=> tz.identifier
|
372
468
|
end
|
373
469
|
|
374
|
-
|
375
|
-
|
376
|
-
|
470
|
+
# Returns true if and only if the identifier of tz is equal to the
|
471
|
+
# identifier of this Timezone.
|
472
|
+
def eql?(tz)
|
473
|
+
self == tz
|
377
474
|
end
|
378
475
|
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
@@periods = TimezonePeriodList.new
|
383
|
-
@instance = new
|
384
|
-
|
385
|
-
def identifier
|
386
|
-
self.class.get_identifier
|
387
|
-
end
|
388
|
-
|
389
|
-
def self.instance
|
390
|
-
@instance
|
391
|
-
end
|
392
|
-
|
393
|
-
def periods
|
394
|
-
@@periods
|
395
|
-
end
|
396
|
-
|
397
|
-
protected
|
398
|
-
def self.add_period(year, month)
|
399
|
-
@@periods.add(year, month) { yield }
|
400
|
-
end
|
401
|
-
|
402
|
-
def self.add_unbounded_start_period
|
403
|
-
@@periods.add_unbounded_start { yield }
|
404
|
-
end
|
405
|
-
|
406
|
-
def self.set_identifier(identifier)
|
407
|
-
@identifier = identifier
|
408
|
-
end
|
409
|
-
|
410
|
-
def self.get_identifier
|
411
|
-
@identifier
|
412
|
-
end
|
413
|
-
CODE
|
414
|
-
end
|
415
|
-
|
416
|
-
def self.setup_linked
|
417
|
-
class_eval <<CODE
|
418
|
-
@instance = new
|
419
|
-
CODE
|
420
|
-
end
|
421
|
-
end
|
422
|
-
|
423
|
-
# A proxy class representing a timezone with a given identifier. It can be
|
424
|
-
# constructed with an identifier and behaves almost identically to a Timezone
|
425
|
-
# loaded through Timezone.get. The first time an attempt is made to perform
|
426
|
-
# a conversion on the proxy, the real Timezone class is loaded. If the
|
427
|
-
# proxy's identifier was not valid, then an exception will be thrown at this
|
428
|
-
# point.
|
429
|
-
class TimezoneProxy < Timezone
|
430
|
-
# Construct a new TimezoneProxy for the given identifier. The identifier
|
431
|
-
# is not checked when constructing the proxy. It will be validated on the
|
432
|
-
# first conversion.
|
433
|
-
def self.new(identifier)
|
434
|
-
# Need to override new to undo the behaviour introduced in Timezone#new.
|
435
|
-
tzp = super()
|
436
|
-
tzp.instance_eval <<CODE
|
437
|
-
@identifier = identifier
|
438
|
-
@real_tz = nil
|
439
|
-
CODE
|
440
|
-
tzp
|
476
|
+
# Returns a hash of this Timezone.
|
477
|
+
def hash
|
478
|
+
identifier.hash
|
441
479
|
end
|
442
|
-
|
443
|
-
#
|
444
|
-
def
|
445
|
-
|
480
|
+
|
481
|
+
# Dumps this Timezone for marshalling.
|
482
|
+
def _dump(limit)
|
483
|
+
identifier
|
446
484
|
end
|
447
485
|
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
486
|
+
# Loads a marshalled Timezone.
|
487
|
+
def self._load(data)
|
488
|
+
Timezone.get(data)
|
489
|
+
end
|
490
|
+
|
491
|
+
private
|
492
|
+
# Loads in the index of timezones if it hasn't already been loaded.
|
493
|
+
def self.load_index
|
494
|
+
unless @@index_loaded
|
495
|
+
require 'tzinfo/indexes/timezones'
|
496
|
+
@@index_loaded = true
|
497
|
+
end
|
498
|
+
end
|
499
|
+
|
500
|
+
# Returns an array of proxies corresponding to the given array of
|
501
|
+
# identifiers.
|
502
|
+
def self.get_proxies(identifiers)
|
503
|
+
identifiers.collect {|identifier| get_proxy(identifier)}
|
452
504
|
end
|
453
|
-
|
454
|
-
end
|
455
|
-
end
|
505
|
+
end
|
456
506
|
end
|