timezone 1.3.2 → 1.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +15 -0
  3. data/.github/workflows/ci.yml +40 -0
  4. data/.rubocop.yml +24 -5
  5. data/CHANGES.markdown +115 -0
  6. data/CONTRIBUTING.markdown +10 -6
  7. data/README.markdown +5 -7
  8. data/Rakefile +3 -1
  9. data/benchmark.rb +16 -29
  10. data/data/Africa/Accra +1 -47
  11. data/data/Africa/Addis_Ababa +5 -4
  12. data/data/Africa/Algiers +2 -2
  13. data/data/Africa/Asmara +5 -4
  14. data/data/Africa/Asmera +5 -4
  15. data/data/Africa/Bangui +4 -1
  16. data/data/Africa/Blantyre +1 -1
  17. data/data/Africa/Brazzaville +4 -1
  18. data/data/Africa/Bujumbura +1 -1
  19. data/data/Africa/Cairo +32 -0
  20. data/data/Africa/Casablanca +43 -1
  21. data/data/Africa/Dar_es_Salaam +5 -4
  22. data/data/Africa/Djibouti +5 -4
  23. data/data/Africa/Douala +4 -1
  24. data/data/Africa/El_Aaiun +43 -1
  25. data/data/Africa/Gaborone +1 -1
  26. data/data/Africa/Harare +1 -1
  27. data/data/Africa/Juba +2 -1
  28. data/data/Africa/Kampala +5 -4
  29. data/data/Africa/Kigali +1 -1
  30. data/data/Africa/Kinshasa +4 -1
  31. data/data/Africa/Lagos +4 -1
  32. data/data/Africa/Libreville +4 -1
  33. data/data/Africa/Luanda +4 -1
  34. data/data/Africa/Lubumbashi +1 -1
  35. data/data/Africa/Lusaka +1 -1
  36. data/data/Africa/Malabo +4 -1
  37. data/data/Africa/Maputo +1 -1
  38. data/data/Africa/Mogadishu +5 -4
  39. data/data/Africa/Nairobi +5 -4
  40. data/data/Africa/Niamey +4 -1
  41. data/data/Africa/Porto-Novo +4 -1
  42. data/data/Africa/Sao_Tome +2 -1
  43. data/data/America/Anguilla +4 -1
  44. data/data/America/Antigua +4 -1
  45. data/data/America/Aruba +4 -2
  46. data/data/America/Asuncion +2 -29
  47. data/data/America/Atikokan +2 -7
  48. data/data/America/Bahia_Banderas +5 -39
  49. data/data/America/Barbados +8 -3
  50. data/data/America/Belize +44 -1
  51. data/data/America/Blanc-Sablon +3 -5
  52. data/data/America/Bogota +1 -1
  53. data/data/America/Cambridge_Bay +17 -3
  54. data/data/America/Campo_Grande +1 -40
  55. data/data/America/Cancun +7 -6
  56. data/data/America/Chihuahua +5 -37
  57. data/data/America/Ciudad_Juarez +94 -0
  58. data/data/America/Coral_Harbour +2 -7
  59. data/data/America/Coyhaique +134 -0
  60. data/data/America/Creston +11 -3
  61. data/data/America/Cuiaba +1 -40
  62. data/data/America/Curacao +4 -2
  63. data/data/America/Dawson +2 -38
  64. data/data/America/Detroit +5 -1
  65. data/data/America/Dominica +4 -1
  66. data/data/America/Edmonton +1 -5
  67. data/data/America/Ensenada +46 -8
  68. data/data/America/Godthab +31 -32
  69. data/data/America/Grand_Turk +1 -2
  70. data/data/America/Grenada +4 -1
  71. data/data/America/Guadeloupe +4 -1
  72. data/data/America/Guyana +4 -3
  73. data/data/America/Hermosillo +5 -7
  74. data/data/America/Indiana/Tell_City +9 -12
  75. data/data/America/Inuvik +17 -4
  76. data/data/America/Iqaluit +17 -3
  77. data/data/America/Kentucky/Louisville +4 -4
  78. data/data/America/Kralendijk +4 -2
  79. data/data/America/Louisville +4 -4
  80. data/data/America/Lower_Princes +4 -2
  81. data/data/America/Marigot +4 -1
  82. data/data/America/Matamoros +1 -1
  83. data/data/America/Mazatlan +5 -39
  84. data/data/America/Merida +3 -35
  85. data/data/America/Metlakatla +2 -1
  86. data/data/America/Mexico_City +4 -36
  87. data/data/America/Miquelon +2 -2
  88. data/data/America/Monterrey +6 -33
  89. data/data/America/Montreal +2 -2
  90. data/data/America/Montserrat +4 -1
  91. data/data/America/Nassau +86 -2
  92. data/data/America/Nipigon +103 -5
  93. data/data/America/Nuuk +119 -0
  94. data/data/America/Ojinaga +38 -38
  95. data/data/America/Pangnirtung +51 -38
  96. data/data/America/Port_of_Spain +4 -1
  97. data/data/America/Punta_Arenas +8 -7
  98. data/data/America/Rainy_River +118 -67
  99. data/data/America/Rankin_Inlet +17 -3
  100. data/data/America/Resolute +17 -3
  101. data/data/America/Santa_Isabel +46 -8
  102. data/data/America/Santiago +11 -11
  103. data/data/America/Sao_Paulo +1 -40
  104. data/data/America/Scoresbysund +30 -30
  105. data/data/America/St_Barthelemy +4 -1
  106. data/data/America/St_Kitts +4 -1
  107. data/data/America/St_Lucia +4 -1
  108. data/data/America/St_Thomas +4 -1
  109. data/data/America/St_Vincent +4 -1
  110. data/data/America/Thunder_Bay +99 -5
  111. data/data/America/Tijuana +46 -8
  112. data/data/America/Toronto +2 -2
  113. data/data/America/Tortola +4 -1
  114. data/data/America/Vancouver +2 -2
  115. data/data/America/Virgin +4 -1
  116. data/data/America/Whitehorse +4 -40
  117. data/data/America/Yellowknife +33 -5
  118. data/data/Antarctica/Casey +10 -0
  119. data/data/Antarctica/DumontDUrville +2 -3
  120. data/data/Antarctica/Macquarie +58 -3
  121. data/data/Antarctica/Syowa +1 -1
  122. data/data/Antarctica/Vostok +4 -1
  123. data/data/Arctic/Longyearbyen +23 -21
  124. data/data/Asia/Almaty +2 -1
  125. data/data/Asia/Amman +3 -35
  126. data/data/Asia/Brunei +18 -2
  127. data/data/Asia/Choibalsan +46 -47
  128. data/data/Asia/Chongqing +3 -1
  129. data/data/Asia/Chungking +3 -1
  130. data/data/Asia/Damascus +1 -33
  131. data/data/Asia/Dili +2 -2
  132. data/data/Asia/Gaza +46 -40
  133. data/data/Asia/Harbin +3 -1
  134. data/data/Asia/Hebron +46 -40
  135. data/data/Asia/Ho_Chi_Minh +4 -4
  136. data/data/Asia/Hong_Kong +20 -20
  137. data/data/Asia/Istanbul +22 -36
  138. data/data/Asia/Jerusalem +37 -31
  139. data/data/Asia/Kuala_Lumpur +3 -3
  140. data/data/Asia/Manila +14 -10
  141. data/data/Asia/Qostanay +53 -0
  142. data/data/Asia/Qyzylorda +2 -1
  143. data/data/Asia/Saigon +4 -4
  144. data/data/Asia/Seoul +9 -1
  145. data/data/Asia/Shanghai +3 -1
  146. data/data/Asia/Singapore +1 -1
  147. data/data/Asia/Tehran +8 -39
  148. data/data/Asia/Tel_Aviv +37 -31
  149. data/data/Atlantic/Azores +23 -28
  150. data/data/Atlantic/Bermuda +29 -2
  151. data/data/Atlantic/Jan_Mayen +23 -21
  152. data/data/Atlantic/Madeira +21 -28
  153. data/data/Atlantic/Reykjavik +1 -68
  154. data/data/Australia/ACT +9 -9
  155. data/data/Australia/Adelaide +9 -9
  156. data/data/Australia/Brisbane +9 -9
  157. data/data/Australia/Broken_Hill +9 -9
  158. data/data/Australia/Canberra +9 -9
  159. data/data/Australia/Currie +22 -10
  160. data/data/Australia/Darwin +8 -8
  161. data/data/Australia/Eucla +7 -7
  162. data/data/Australia/Hobart +12 -8
  163. data/data/Australia/Lindeman +9 -9
  164. data/data/Australia/Melbourne +9 -9
  165. data/data/Australia/NSW +9 -9
  166. data/data/Australia/North +8 -8
  167. data/data/Australia/Perth +7 -7
  168. data/data/Australia/Queensland +9 -9
  169. data/data/Australia/South +9 -9
  170. data/data/Australia/Sydney +9 -9
  171. data/data/Australia/Tasmania +12 -8
  172. data/data/Australia/Victoria +9 -9
  173. data/data/Australia/West +7 -7
  174. data/data/Australia/Yancowinna +9 -9
  175. data/data/Brazil/East +1 -40
  176. data/data/CET +56 -7
  177. data/data/CST6CDT +90 -3
  178. data/data/Canada/Eastern +2 -2
  179. data/data/Canada/Mountain +1 -5
  180. data/data/Canada/Pacific +2 -2
  181. data/data/Canada/Yukon +4 -40
  182. data/data/Chile/Continental +11 -11
  183. data/data/Chile/EasterIsland +2 -2
  184. data/data/EET +24 -8
  185. data/data/EST +3 -1
  186. data/data/EST5EDT +90 -3
  187. data/data/Egypt +32 -0
  188. data/data/Eire +2 -2
  189. data/data/Etc/UCT +1 -1
  190. data/data/Europe/Amsterdam +60 -55
  191. data/data/Europe/Brussels +2 -2
  192. data/data/Europe/Budapest +24 -24
  193. data/data/Europe/Copenhagen +23 -14
  194. data/data/Europe/Dublin +2 -2
  195. data/data/Europe/Istanbul +22 -36
  196. data/data/Europe/Kaliningrad +6 -5
  197. data/data/Europe/Kiev +8 -8
  198. data/data/Europe/Kirov +44 -44
  199. data/data/Europe/Kyiv +124 -0
  200. data/data/Europe/Lisbon +25 -22
  201. data/data/Europe/Luxembourg +38 -36
  202. data/data/Europe/Monaco +9 -10
  203. data/data/Europe/Oslo +23 -21
  204. data/data/Europe/Paris +3 -3
  205. data/data/Europe/Rome +2 -2
  206. data/data/Europe/San_Marino +2 -2
  207. data/data/Europe/Simferopol +10 -10
  208. data/data/Europe/Stockholm +28 -5
  209. data/data/Europe/Uzhgorod +18 -17
  210. data/data/Europe/Vatican +2 -2
  211. data/data/Europe/Vienna +2 -2
  212. data/data/Europe/Volgograd +48 -47
  213. data/data/Europe/Zaporozhye +17 -18
  214. data/data/HST +8 -1
  215. data/data/Hongkong +20 -20
  216. data/data/Iceland +1 -68
  217. data/data/Indian/Antananarivo +5 -4
  218. data/data/Indian/Christmas +2 -1
  219. data/data/Indian/Cocos +4 -1
  220. data/data/Indian/Comoro +5 -4
  221. data/data/Indian/Kerguelen +2 -1
  222. data/data/Indian/Mahe +1 -1
  223. data/data/Indian/Mayotte +5 -4
  224. data/data/Indian/Reunion +1 -1
  225. data/data/Iran +8 -39
  226. data/data/Israel +37 -31
  227. data/data/Kwajalein +5 -2
  228. data/data/MET +188 -139
  229. data/data/MST +12 -1
  230. data/data/MST7MDT +12 -3
  231. data/data/Mexico/BajaNorte +46 -8
  232. data/data/Mexico/BajaSur +5 -39
  233. data/data/Mexico/General +4 -36
  234. data/data/PRC +3 -1
  235. data/data/PST8PDT +39 -2
  236. data/data/Pacific/Apia +1 -36
  237. data/data/Pacific/Chuuk +2 -1
  238. data/data/Pacific/Easter +2 -2
  239. data/data/Pacific/Efate +5 -3
  240. data/data/Pacific/Enderbury +2 -2
  241. data/data/Pacific/Fiji +5 -40
  242. data/data/Pacific/Funafuti +1 -1
  243. data/data/Pacific/Guam +19 -1
  244. data/data/Pacific/Kanton +4 -0
  245. data/data/Pacific/Kosrae +8 -2
  246. data/data/Pacific/Kwajalein +5 -2
  247. data/data/Pacific/Majuro +1 -2
  248. data/data/Pacific/Nauru +3 -3
  249. data/data/Pacific/Niue +2 -3
  250. data/data/Pacific/Norfolk +42 -3
  251. data/data/Pacific/Palau +2 -1
  252. data/data/Pacific/Pohnpei +1 -1
  253. data/data/Pacific/Ponape +1 -1
  254. data/data/Pacific/Rarotonga +3 -2
  255. data/data/Pacific/Saipan +19 -1
  256. data/data/Pacific/Tongatapu +3 -3
  257. data/data/Pacific/Truk +2 -1
  258. data/data/Pacific/Wake +1 -1
  259. data/data/Pacific/Wallis +1 -1
  260. data/data/Pacific/Yap +2 -1
  261. data/data/Portugal +25 -22
  262. data/data/ROK +9 -1
  263. data/data/Singapore +1 -1
  264. data/data/Turkey +22 -36
  265. data/data/UCT +1 -1
  266. data/data/US/Michigan +5 -1
  267. data/data/WET +106 -4
  268. data/lib/timezone/error.rb +6 -0
  269. data/lib/timezone/loader.rb +8 -5
  270. data/lib/timezone/lookup/geonames.rb +1 -0
  271. data/lib/timezone/lookup/google.rb +3 -2
  272. data/lib/timezone/lookup.rb +3 -2
  273. data/lib/timezone/parser.rb +33 -18
  274. data/lib/timezone/version.rb +1 -1
  275. data/lib/timezone/zone.rb +17 -17
  276. data/test/test_timezone.rb +2 -4
  277. data/test/timezone/lookup/test_geonames.rb +16 -9
  278. data/test/timezone/lookup/test_google.rb +7 -2
  279. data/test/timezone/lookup/test_test.rb +1 -0
  280. data/test/timezone/test_lookup.rb +5 -5
  281. data/test/timezone/test_zone.rb +4 -4
  282. data/timezone.gemspec +10 -5
  283. metadata +63 -16
  284. data/.travis.yml +0 -12
  285. data/data/US/Pacific-New +0 -189
data/data/Pacific/Efate CHANGED
@@ -1,8 +1,10 @@
1
1
  -1829387597:LMT:0:40396
2
- 2262643996:+11:0:39600
2
+ 1954797196:+11:0:39600
3
+ 8467200:+12:1:43200
4
+ 299379600:+11:0:39600
5
+ 15721200:+12:1:43200
6
+ 15728400:+11:0:39600
3
7
  15721200:+12:1:43200
4
- 18320400:+11:0:39600
5
- 13129200:+12:1:43200
6
8
  16333200:+11:0:39600
7
9
  15116400:+12:1:43200
8
10
  16333200:+11:0:39600
@@ -1,4 +1,4 @@
1
- -2177411741:LMT:0:-41060
2
- 2485038940:-12:0:-43200
1
+ -1020470401:-00:0:0
2
+ 1328097600:-12:0:-43200
3
3
  481244400:-11:0:-39600
4
4
  1:+13:0:46800
data/data/Pacific/Fiji CHANGED
@@ -23,43 +23,8 @@
23
23
  6048000:+13:1:46800
24
24
  25401600:+12:0:43200
25
25
  6048000:+13:1:46800
26
- 25401600:+12:0:43200
27
- 6652800:+13:1:46800
28
- 24796800:+12:0:43200
29
- 6652800:+13:1:46800
30
- 25401600:+12:0:43200
31
- 6048000:+13:1:46800
32
- 25401600:+12:0:43200
33
- 6048000:+13:1:46800
34
- 25401600:+12:0:43200
35
- 6048000:+13:1:46800
36
- 25401600:+12:0:43200
37
- 6652800:+13:1:46800
38
- 24796800:+12:0:43200
39
- 6652800:+13:1:46800
40
- 24796800:+12:0:43200
41
- 6652800:+13:1:46800
42
- 25401600:+12:0:43200
43
- 6048000:+13:1:46800
44
- 25401600:+12:0:43200
45
- 6048000:+13:1:46800
46
- 25401600:+12:0:43200
47
- 6048000:+13:1:46800
48
- 25401600:+12:0:43200
49
- 6652800:+13:1:46800
50
- 24796800:+12:0:43200
51
- 6652800:+13:1:46800
52
- 25401600:+12:0:43200
53
- 6048000:+13:1:46800
54
- 25401600:+12:0:43200
55
- 6048000:+13:1:46800
56
- 25401600:+12:0:43200
57
- 6048000:+13:1:46800
58
- 25401600:+12:0:43200
59
- 6048000:+13:1:46800
60
- 25401600:+12:0:43200
61
- 6652800:+13:1:46800
62
- 24796800:+12:0:43200
63
- 6652800:+13:1:46800
64
- 25401600:+12:0:43200
65
- 1:+13:1:46800
26
+ 26006400:+12:0:43200
27
+ 5443200:+13:1:46800
28
+ 29635200:+12:0:43200
29
+ 2419200:+13:1:46800
30
+ 1:+12:0:43200
@@ -1,2 +1,2 @@
1
- -2177495813:LMT:0:43012
1
+ -2177494325:LMT:0:41524
2
2
  1:+12:0:43200
data/data/Pacific/Guam CHANGED
@@ -1,4 +1,22 @@
1
1
  -3944626741:LMT:0:-51660
2
2
  1767139200:LMT:0:34740
3
- 3154981140:GST:0:36000
3
+ 1291937940:GST:0:36000
4
+ 83293200:+09:0:32400
5
+ 470365200:GST:0:36000
6
+ 50281200:GDT:1:39600
7
+ 207882000:GST:0:36000
8
+ 44312460:GDT:1:39600
9
+ 12711540:GST:0:36000
10
+ 6044400:GDT:1:39600
11
+ 20566800:GST:0:36000
12
+ 11487600:GDT:1:39600
13
+ 19962000:GST:0:36000
14
+ 11487600:GDT:1:39600
15
+ 71974800:GST:0:36000
16
+ 6044400:GDT:1:39600
17
+ 71024400:GST:0:36000
18
+ 7599660:GDT:1:39600
19
+ 21171540:GST:0:36000
20
+ 10882800:GDT:1:39600
21
+ 735951600:GST:0:36000
4
22
  1:ChST:0:36000
@@ -0,0 +1,4 @@
1
+ -1020470401:-00:0:0
2
+ 1328097600:-12:0:-43200
3
+ 481244400:-11:0:-39600
4
+ 1:+13:0:46800
data/data/Pacific/Kosrae CHANGED
@@ -1,4 +1,10 @@
1
- -2177491917:LMT:0:39116
2
- 2169503516:+11:0:39600
1
+ -3944631117:LMT:0:-47284
2
+ 1767139200:LMT:0:39116
3
+ 433813916:+11:0:39600
4
+ 136864800:+09:0:32400
5
+ 565394400:+11:0:39600
6
+ 134010000:+10:0:36000
7
+ 136774800:+09:0:32400
8
+ 762645600:+11:0:39600
3
9
  923094000:+12:0:43200
4
10
  1:+11:0:39600
@@ -1,4 +1,7 @@
1
1
  -2177492961:LMT:0:40160
2
- 2169504560:+11:0:39600
3
- 753836400:-12:0:-43200
2
+ 1136074160:+11:0:39600
3
+ 134010000:+10:0:36000
4
+ 89946000:+09:0:32400
5
+ 809474400:+11:0:39600
6
+ 753922800:-12:0:-43200
4
7
  1:+12:0:43200
data/data/Pacific/Majuro CHANGED
@@ -1,3 +1,2 @@
1
- -2177493889:LMT:0:41088
2
- 2169505488:+11:0:39600
1
+ -2177494325:LMT:0:41524
3
2
  1:+12:0:43200
data/data/Pacific/Nauru CHANGED
@@ -1,5 +1,5 @@
1
1
  -1545131261:LMT:0:40060
2
- 667784260:+1130:0:41400
3
- 76386600:+09:0:32400
4
- 1095283800:+1130:0:41400
2
+ 682213060:+1130:0:41400
3
+ 95567400:+09:0:32400
4
+ 1054769400:+1130:0:41400
5
5
  1:+12:0:43200
data/data/Pacific/Niue CHANGED
@@ -1,4 +1,3 @@
1
- -2177412021:LMT:0:-40780
2
- 1577836820:-1120:0:-40800
3
- 875664600:-1130:0:-41400
1
+ -543069621:LMT:0:-40780
2
+ 369446420:-1120:0:-40800
4
3
  1:-11:0:-39600
data/data/Pacific/Norfolk CHANGED
@@ -1,6 +1,45 @@
1
1
  -2177493113:LMT:0:40312
2
2
  1577836792:+1112:0:40320
3
3
  751686120:+1130:0:41400
4
- 10882800:+1230:1:45000
5
- 1280970000:+1130:0:41400
6
- 1:+11:0:39600
4
+ 10886400:+1230:1:45000
5
+ 1280966400:+1130:0:41400
6
+ 126405000:+11:0:39600
7
+ 15724800:+12:1:43200
8
+ 15724800:+11:0:39600
9
+ 15724800:+12:1:43200
10
+ 15724800:+11:0:39600
11
+ 15724800:+12:1:43200
12
+ 15724800:+11:0:39600
13
+ 15724800:+12:1:43200
14
+ 15724800:+11:0:39600
15
+ 16329600:+12:1:43200
16
+ 15724800:+11:0:39600
17
+ 15724800:+12:1:43200
18
+ 15724800:+11:0:39600
19
+ 15724800:+12:1:43200
20
+ 15724800:+11:0:39600
21
+ 15724800:+12:1:43200
22
+ 15724800:+11:0:39600
23
+ 15724800:+12:1:43200
24
+ 15724800:+11:0:39600
25
+ 15724800:+12:1:43200
26
+ 16329600:+11:0:39600
27
+ 15724800:+12:1:43200
28
+ 15724800:+11:0:39600
29
+ 15724800:+12:1:43200
30
+ 15724800:+11:0:39600
31
+ 15724800:+12:1:43200
32
+ 15724800:+11:0:39600
33
+ 15724800:+12:1:43200
34
+ 15724800:+11:0:39600
35
+ 15724800:+12:1:43200
36
+ 15724800:+11:0:39600
37
+ 15724800:+12:1:43200
38
+ 16329600:+11:0:39600
39
+ 15724800:+12:1:43200
40
+ 15724800:+11:0:39600
41
+ 15724800:+12:1:43200
42
+ 15724800:+11:0:39600
43
+ 15724800:+12:1:43200
44
+ 15724800:+11:0:39600
45
+ 1:+12:1:43200
data/data/Pacific/Palau CHANGED
@@ -1,2 +1,3 @@
1
- -2177485077:LMT:0:32276
1
+ -3944624277:LMT:0:-54124
2
+ 1767139200:LMT:0:32276
2
3
  1:+09:0:32400
data/data/Pacific/Pohnpei CHANGED
@@ -1,2 +1,2 @@
1
- -2177490773:LMT:0:37972
1
+ -1806748789:LMT:0:38388
2
2
  1:+11:0:39600
data/data/Pacific/Ponape CHANGED
@@ -1,2 +1,2 @@
1
- -2177490773:LMT:0:37972
1
+ -1806748789:LMT:0:38388
2
2
  1:+11:0:39600
@@ -1,5 +1,6 @@
1
- -2177414457:LMT:0:-38344
2
- 2457129056:-1030:0:-37800
1
+ -2209555257:LMT:0:48056
2
+ 1666483200:LMT:0:-38344
3
+ 822786656:-1030:0:-37800
3
4
  9673200:-0930:1:-34200
4
5
  20565000:-10:0:-36000
5
6
  10884600:-0930:1:-34200
data/data/Pacific/Saipan CHANGED
@@ -1,4 +1,22 @@
1
1
  -3944626741:LMT:0:-51660
2
2
  1767139200:LMT:0:34740
3
- 3154981140:GST:0:36000
3
+ 1291937940:GST:0:36000
4
+ 83293200:+09:0:32400
5
+ 470365200:GST:0:36000
6
+ 50281200:GDT:1:39600
7
+ 207882000:GST:0:36000
8
+ 44312460:GDT:1:39600
9
+ 12711540:GST:0:36000
10
+ 6044400:GDT:1:39600
11
+ 20566800:GST:0:36000
12
+ 11487600:GDT:1:39600
13
+ 19962000:GST:0:36000
14
+ 11487600:GDT:1:39600
15
+ 71974800:GST:0:36000
16
+ 6044400:GDT:1:39600
17
+ 71024400:GST:0:36000
18
+ 7599660:GDT:1:39600
19
+ 21171540:GST:0:36000
20
+ 10882800:GDT:1:39600
21
+ 735951600:GST:0:36000
4
22
  1:ChST:0:36000
@@ -1,6 +1,6 @@
1
- -2177497161:LMT:0:44360
2
- 1262303960:+1220:0:44400
3
- 1854408000:+13:0:46800
1
+ -767189953:LMT:0:44352
2
+ 483148752:+1220:0:44400
3
+ 1223256000:+13:0:46800
4
4
  14169600:+14:1:50400
5
5
  19958400:+13:0:46800
6
6
  7254000:+14:1:50400
data/data/Pacific/Truk CHANGED
@@ -1,2 +1,3 @@
1
- -2177489229:LMT:0:36428
1
+ -2840176121:LMT:0:35320
2
+ 473385608:PMMT:0:35312
2
3
  1:+10:0:36000
data/data/Pacific/Wake CHANGED
@@ -1,2 +1,2 @@
1
- -2177492789:LMT:0:39988
1
+ -2177494325:LMT:0:41524
2
2
  1:+12:0:43200
data/data/Pacific/Wallis CHANGED
@@ -1,2 +1,2 @@
1
- -2177496921:LMT:0:44120
1
+ -2177494325:LMT:0:41524
2
2
  1:+12:0:43200
data/data/Pacific/Yap CHANGED
@@ -1,2 +1,3 @@
1
- -2177489229:LMT:0:36428
1
+ -2840176121:LMT:0:35320
2
+ 473385608:PMMT:0:35312
2
3
  1:+10:0:36000
data/data/Portugal CHANGED
@@ -1,19 +1,19 @@
1
1
  -1830384001:LMT:0:-2205
2
2
  140828400:WET:0:0
3
3
  11754000:WEST:1:3600
4
- 10364400:WET:0:0
5
- 19699200:WEST:1:3600
6
- 11923200:WET:0:0
7
- 19612800:WEST:1:3600
8
- 11836800:WET:0:0
9
- 19699200:WEST:1:3600
10
- 11923200:WET:0:0
11
- 19699200:WEST:1:3600
12
- 11836800:WET:0:0
13
- 19699200:WEST:1:3600
4
+ 10368000:WET:0:0
5
+ 19695600:WEST:1:3600
6
+ 11840400:WET:0:0
7
+ 19695600:WEST:1:3600
8
+ 11840400:WET:0:0
9
+ 19695600:WEST:1:3600
10
+ 11926800:WET:0:0
11
+ 19695600:WEST:1:3600
12
+ 11840400:WET:0:0
13
+ 19695600:WEST:1:3600
14
14
  79056000:WET:0:0
15
- 15638400:WEST:1:3600
16
- 47520000:WET:0:0
15
+ 14774400:WEST:1:3600
16
+ 48384000:WET:0:0
17
17
  14515200:WEST:1:3600
18
18
  16329600:WET:0:0
19
19
  15120000:WEST:1:3600
@@ -38,8 +38,8 @@
38
38
  16934400:WET:0:0
39
39
  18748800:WEST:1:3600
40
40
  8467200:WET:0:0
41
- 19353600:WEST:1:3600
42
- 15724800:WET:0:0
41
+ 19526400:WEST:1:3600
42
+ 15552000:WET:0:0
43
43
  15811200:WEST:1:3600
44
44
  13824000:WET:0:0
45
45
  3625200:WEST:1:3600
@@ -65,7 +65,9 @@
65
65
  15724800:WEST:1:3600
66
66
  15724800:WET:0:0
67
67
  15724800:WEST:1:3600
68
- 47174400:WET:0:0
68
+ 15724800:WET:0:0
69
+ 15724800:WEST:1:3600
70
+ 15724800:WET:0:0
69
71
  16329600:WEST:1:3600
70
72
  15724800:WET:0:0
71
73
  15724800:WEST:1:3600
@@ -96,26 +98,27 @@
96
98
  15724800:WET:0:0
97
99
  15724800:WEST:1:3600
98
100
  15724800:WET:0:0
99
- 330818400:CET:0:3600
101
+ 15724800:WEST:1:3600
102
+ 315093600:CET:0:3600
100
103
  15724800:WET:0:0
101
104
  15724800:WEST:1:3600
102
- 16329600:WET:0:0
105
+ 16333200:WET:0:0
103
106
  15724800:WEST:1:3600
104
107
  15724800:WET:0:0
105
- 15728400:WEST:1:3600
108
+ 15724800:WEST:1:3600
109
+ 16329600:WET:0:0
110
+ 15120000:WEST:1:3600
106
111
  15721200:WET:0:0
107
- 15728400:WEST:1:3600
112
+ 15724800:WEST:1:3600
108
113
  15724800:WET:0:0
109
114
  15724800:WEST:1:3600
110
115
  15724800:WET:0:0
111
116
  15724800:WEST:1:3600
112
- 15728400:WET:0:0
113
- 15721200:WEST:1:3600
114
117
  15724800:WET:0:0
115
118
  16329600:WEST:1:3600
116
119
  15724800:WET:0:0
117
120
  15724800:WEST:1:3600
118
- 15724800:WET:0:0
121
+ 15728400:WET:0:0
119
122
  15724800:WEST:1:3600
120
123
  15724800:WET:0:0
121
124
  15724800:WEST:1:3600
data/data/ROK CHANGED
@@ -1,7 +1,15 @@
1
1
  -1948782473:LMT:0:30472
2
2
  118367872:KST:0:30600
3
3
  1063063800:JST:0:32400
4
- 269222400:KST:0:32400
4
+ 86140800:KST:0:32400
5
+ 8982000:KDT:1:36000
6
+ 17456400:KST:0:32400
7
+ 13906800:KDT:1:36000
8
+ 17456400:KST:0:32400
9
+ 13993200:KDT:1:36000
10
+ 20566800:KST:0:32400
11
+ 10882800:KDT:1:36000
12
+ 79837200:KST:0:32400
5
13
  35425800:KST:0:30600
6
14
  10969200:KDT:1:34200
7
15
  21949200:KST:0:30600
data/data/Singapore CHANGED
@@ -5,5 +5,5 @@
5
5
  178848000:+0720:0:26400
6
6
  14514600:+0730:0:27000
7
7
  112660200:+09:0:32400
8
- 1145669400:+0730:0:27000
8
+ 1145667600:+0730:0:27000
9
9
  1:+08:0:28800
data/data/Turkey CHANGED
@@ -12,14 +12,12 @@
12
12
  12178800:EEST:1:10800
13
13
  18320400:EET:0:7200
14
14
  13215600:EEST:1:10800
15
- 465354000:EET:0:7200
15
+ 465440400:EET:0:7200
16
16
  8377200:EEST:1:10800
17
- 4928400:EET:0:7200
17
+ 4842000:EET:0:7200
18
18
  25398000:EEST:1:10800
19
19
  16592400:EET:0:7200
20
- 18486000:EEST:1:10800
21
- 76294800:EET:0:7200
22
- 16326000:EEST:1:10800
20
+ 111106800:EEST:1:10800
23
21
  20394000:EET:0:7200
24
22
  10537200:EEST:1:10800
25
23
  17370000:EET:0:7200
@@ -28,44 +26,32 @@
28
26
  14511600:EEST:1:10800
29
27
  16333200:EET:0:7200
30
28
  15116400:EEST:1:10800
31
- 17197200:EET:0:7200
32
- 14857200:EEST:1:10800
33
29
  16938000:EET:0:7200
34
- 14598000:EEST:1:10800
35
- 339814800:EET:0:7200
36
- 7340400:EEST:1:10800
37
- 50547600:EET:0:7200
30
+ 15116400:EEST:1:10800
31
+ 16938000:EET:0:7200
32
+ 14511600:EEST:1:10800
33
+ 339901200:EET:0:7200
34
+ 40777200:EEST:1:10800
35
+ 17110800:EET:0:7200
38
36
  12006000:EEST:1:10800
39
- 176259600:EET:0:7200
40
- 13302000:EEST:1:10800
41
- 18147600:EET:0:7200
42
- 13302000:EEST:1:10800
43
- 18752400:EET:0:7200
44
- 13302000:EEST:1:10800
45
- 20570400:EET:0:7200
46
- 13309200:EEST:1:10800
47
- 12700800:EET:0:7200
48
- 18756000:EEST:1:10800
49
- 12686400:EET:0:7200
50
- 18140400:EEST:1:10800
51
- 18925200:EET:0:7200
52
- 13129200:EEST:1:10800
37
+ 273636000:EET:0:7200
38
+ 13305600:EEST:1:10800
39
+ 12704400:EET:0:7200
40
+ 18745200:EEST:1:10800
41
+ 12013200:EET:0:7200
42
+ 19436400:EEST:1:10800
43
+ 12099600:EET:0:7200
44
+ 19350000:EEST:1:10800
53
45
  13309200:EET:0:7200
54
46
  16930800:EEST:1:10800
55
47
  14518800:EET:0:7200
56
- 16930800:EEST:1:10800
57
- 31532400:+04:1:14400
58
- 15048000:+03:0:10800
59
- 16401600:+04:1:14400
60
- 14443200:+03:0:10800
61
- 17006400:+04:1:14400
62
- 14443200:+03:0:10800
63
- 17006400:+04:1:14400
64
- 25318800:+03:0:10800
48
+ 7592400:EEST:1:10800
49
+ 160538400:+03:0:10800
65
50
  5439600:+04:1:14400
66
- 48906000:+03:0:10800
51
+ 34218000:+03:0:10800
52
+ 14688000:EET:0:7200
67
53
  13910400:EEST:1:10800
68
- 15818400:EET:0:7200
54
+ 15811200:EET:0:7200
69
55
  15724800:EEST:1:10800
70
56
  15724800:EET:0:7200
71
57
  15724800:EEST:1:10800
data/data/UCT CHANGED
@@ -1 +1 @@
1
- 0:UCT:0:0
1
+ 0:UTC:0:0
data/data/US/Michigan CHANGED
@@ -5,7 +5,11 @@
5
5
  3999600:EPT:1:-14400
6
6
  81046800:EST:0:-18000
7
7
  13302000:EDT:1:-14400
8
- 775962000:EST:0:-18000
8
+ 590540460:EST:0:-18000
9
+ 11840340:EDT:1:-14400
10
+ 15728400:EST:0:-18000
11
+ 15721200:EDT:1:-14400
12
+ 142131600:EST:0:-18000
9
13
  15721200:EDT:1:-14400
10
14
  6051600:EST:0:-18000
11
15
  25398000:EDT:1:-14400
data/data/WET CHANGED
@@ -1,11 +1,76 @@
1
- 228877199:WET:0:0
2
- 15120000:WEST:1:3600
1
+ -1830384001:LMT:0:-2205
2
+ 140828400:WET:0:0
3
+ 11754000:WEST:1:3600
4
+ 10368000:WET:0:0
5
+ 19695600:WEST:1:3600
6
+ 11840400:WET:0:0
7
+ 19695600:WEST:1:3600
8
+ 11840400:WET:0:0
9
+ 19695600:WEST:1:3600
10
+ 11926800:WET:0:0
11
+ 19695600:WEST:1:3600
12
+ 11840400:WET:0:0
13
+ 19695600:WEST:1:3600
14
+ 79056000:WET:0:0
15
+ 14774400:WEST:1:3600
16
+ 48384000:WET:0:0
17
+ 14515200:WEST:1:3600
3
18
  16329600:WET:0:0
19
+ 15120000:WEST:1:3600
20
+ 16934400:WET:0:0
21
+ 15120000:WEST:1:3600
22
+ 16934400:WET:0:0
23
+ 14515200:WEST:1:3600
24
+ 48384000:WET:0:0
25
+ 14515200:WEST:1:3600
26
+ 15724800:WET:0:0
27
+ 15724800:WEST:1:3600
28
+ 47779200:WET:0:0
4
29
  15724800:WEST:1:3600
30
+ 15120000:WET:0:0
31
+ 16329600:WEST:1:3600
32
+ 16934400:WET:0:0
33
+ 14515200:WEST:1:3600
34
+ 15724800:WET:0:0
35
+ 15724800:WEST:1:3600
36
+ 15120000:WET:0:0
37
+ 16329600:WEST:1:3600
38
+ 16934400:WET:0:0
39
+ 18748800:WEST:1:3600
40
+ 8467200:WET:0:0
41
+ 19526400:WEST:1:3600
42
+ 15552000:WET:0:0
43
+ 15811200:WEST:1:3600
44
+ 13824000:WET:0:0
45
+ 3625200:WEST:1:3600
46
+ 9676800:WEMT:1:7200
47
+ 6051600:WEST:1:3600
48
+ 12096000:WET:0:0
49
+ 3020400:WEST:1:3600
50
+ 11491200:WEMT:1:7200
51
+ 5446800:WEST:1:3600
52
+ 11491200:WET:0:0
53
+ 3625200:WEST:1:3600
54
+ 10886400:WEMT:1:7200
55
+ 5446800:WEST:1:3600
56
+ 11491200:WET:0:0
57
+ 3625200:WEST:1:3600
58
+ 10886400:WEMT:1:7200
59
+ 5446800:WEST:1:3600
60
+ 13910400:WET:0:0
61
+ 15724800:WEST:1:3600
62
+ 15735600:WET:0:0
63
+ 15724800:WEST:1:3600
64
+ 15724800:WET:0:0
65
+ 15724800:WEST:1:3600
66
+ 15724800:WET:0:0
67
+ 15724800:WEST:1:3600
68
+ 15724800:WET:0:0
69
+ 15724800:WEST:1:3600
70
+ 15724800:WET:0:0
71
+ 16329600:WEST:1:3600
5
72
  15724800:WET:0:0
6
73
  15724800:WEST:1:3600
7
- 16329600:WET:0:0
8
- 15120000:WEST:1:3600
9
74
  15724800:WET:0:0
10
75
  15724800:WEST:1:3600
11
76
  15724800:WET:0:0
@@ -34,9 +99,46 @@
34
99
  15724800:WEST:1:3600
35
100
  15724800:WET:0:0
36
101
  15724800:WEST:1:3600
102
+ 315093600:CET:0:3600
103
+ 15724800:WET:0:0
104
+ 15724800:WEST:1:3600
105
+ 16333200:WET:0:0
106
+ 15724800:WEST:1:3600
37
107
  15724800:WET:0:0
38
108
  15724800:WEST:1:3600
39
109
  16329600:WET:0:0
110
+ 15120000:WEST:1:3600
111
+ 15721200:WET:0:0
112
+ 15724800:WEST:1:3600
113
+ 15724800:WET:0:0
114
+ 15724800:WEST:1:3600
115
+ 15724800:WET:0:0
116
+ 15724800:WEST:1:3600
117
+ 15724800:WET:0:0
118
+ 16329600:WEST:1:3600
119
+ 15724800:WET:0:0
120
+ 15724800:WEST:1:3600
121
+ 15728400:WET:0:0
122
+ 15724800:WEST:1:3600
123
+ 15724800:WET:0:0
124
+ 15724800:WEST:1:3600
125
+ 15724800:WET:0:0
126
+ 15724800:WEST:1:3600
127
+ 15724800:WET:0:0
128
+ 15724800:WEST:1:3600
129
+ 15724800:WET:0:0
130
+ 16329600:WEST:1:3600
131
+ 15724800:WET:0:0
132
+ 15724800:WEST:1:3600
133
+ 15724800:WET:0:0
134
+ 15724800:WEST:1:3600
135
+ 15724800:CET:0:3600
136
+ 15724800:CEST:1:7200
137
+ 15724800:CET:0:3600
138
+ 15724800:CEST:1:7200
139
+ 15724800:CET:0:3600
140
+ 15724800:CEST:1:7200
141
+ 16329600:CET:0:3600
40
142
  18144000:WEST:1:3600
41
143
  13305600:WET:0:0
42
144
  18144000:WEST:1:3600
@@ -12,16 +12,22 @@ module Timezone
12
12
  module Error
13
13
  # Top-level error. All other timezone errors subclass this one.
14
14
  class Base < StandardError; end
15
+
15
16
  # Indicates an invalid timezone name.
16
17
  class InvalidZone < Base; end
18
+
17
19
  # Indicates a lookup failure.
18
20
  class Lookup < Base; end
21
+
19
22
  # Indicates an error during lookup using the geonames API.
20
23
  class GeoNames < Lookup; end
24
+
21
25
  # Indicates an error during lookup using the google API.
22
26
  class Google < Lookup; end
27
+
23
28
  # Indicates a missing stub during a test lookup.
24
29
  class Test < Lookup; end
30
+
25
31
  # Indicates an invalid configuration.
26
32
  class InvalidConfig < Base; end
27
33
  end
@@ -2,18 +2,21 @@
2
2
 
3
3
  require 'timezone/error'
4
4
 
5
- module Timezone # rubocop:disable Style/Documentation
5
+ module Timezone
6
6
  # Responsible for loading and parsing timezone data from files.
7
7
  module Loader
8
- ZONE_FILE_PATH = File.expand_path(File.dirname(__FILE__) + '/../../data')
8
+ ZONE_FILE_PATH = File.expand_path("#{File.dirname(__FILE__)}/../../data")
9
9
  SOURCE_BIT = 0
10
10
 
11
+ @rules = {} # cache of loaded rules
12
+
11
13
  class << self
12
14
  def load(name)
13
- raise ::Timezone::Error::InvalidZone unless valid?(name)
15
+ @rules.fetch(name) do
16
+ raise ::Timezone::Error::InvalidZone unless valid?(name)
14
17
 
15
- @rules ||= {}
16
- @rules[name] ||= parse_zone_data(get_zone_data(name))
18
+ @rules[name] = parse_zone_data(get_zone_data(name))
19
+ end
17
20
  end
18
21
 
19
22
  def names