timezone 1.3.3 → 1.3.29
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.
- checksums.yaml +5 -5
- data/.codeclimate.yml +15 -0
- data/.github/workflows/ci.yml +40 -0
- data/.rubocop.yml +24 -5
- data/CHANGES.markdown +107 -0
- data/CONTRIBUTING.markdown +10 -6
- data/README.markdown +5 -7
- data/Rakefile +3 -1
- data/benchmark.rb +16 -29
- data/data/Africa/Accra +1 -47
- data/data/Africa/Addis_Ababa +5 -4
- data/data/Africa/Algiers +2 -2
- data/data/Africa/Asmara +5 -4
- data/data/Africa/Asmera +5 -4
- data/data/Africa/Bangui +4 -1
- data/data/Africa/Blantyre +1 -1
- data/data/Africa/Brazzaville +4 -1
- data/data/Africa/Bujumbura +1 -1
- data/data/Africa/Cairo +32 -0
- data/data/Africa/Casablanca +8 -6
- data/data/Africa/Dar_es_Salaam +5 -4
- data/data/Africa/Djibouti +5 -4
- data/data/Africa/Douala +4 -1
- data/data/Africa/El_Aaiun +8 -6
- data/data/Africa/Gaborone +1 -1
- data/data/Africa/Harare +1 -1
- data/data/Africa/Juba +2 -1
- data/data/Africa/Kampala +5 -4
- data/data/Africa/Kigali +1 -1
- data/data/Africa/Kinshasa +4 -1
- data/data/Africa/Lagos +4 -1
- data/data/Africa/Libreville +4 -1
- data/data/Africa/Luanda +4 -1
- data/data/Africa/Lubumbashi +1 -1
- data/data/Africa/Lusaka +1 -1
- data/data/Africa/Malabo +4 -1
- data/data/Africa/Maputo +1 -1
- data/data/Africa/Mogadishu +5 -4
- data/data/Africa/Nairobi +5 -4
- data/data/Africa/Niamey +4 -1
- data/data/Africa/Porto-Novo +4 -1
- data/data/America/Anguilla +4 -1
- data/data/America/Antigua +4 -1
- data/data/America/Aruba +4 -2
- data/data/America/Asuncion +2 -29
- data/data/America/Atikokan +2 -7
- data/data/America/Bahia_Banderas +5 -39
- data/data/America/Barbados +8 -3
- data/data/America/Belize +44 -1
- data/data/America/Blanc-Sablon +3 -5
- data/data/America/Bogota +1 -1
- data/data/America/Cambridge_Bay +17 -3
- data/data/America/Campo_Grande +1 -40
- data/data/America/Cancun +7 -6
- data/data/America/Chihuahua +5 -37
- data/data/America/Ciudad_Juarez +94 -0
- data/data/America/Coral_Harbour +2 -7
- data/data/America/Coyhaique +134 -0
- data/data/America/Creston +11 -3
- data/data/America/Cuiaba +1 -40
- data/data/America/Curacao +4 -2
- data/data/America/Dawson +2 -38
- data/data/America/Detroit +5 -1
- data/data/America/Dominica +4 -1
- data/data/America/Edmonton +1 -5
- data/data/America/Ensenada +13 -7
- data/data/America/Godthab +31 -32
- data/data/America/Grand_Turk +1 -2
- data/data/America/Grenada +4 -1
- data/data/America/Guadeloupe +4 -1
- data/data/America/Guyana +4 -3
- data/data/America/Hermosillo +5 -7
- data/data/America/Indiana/Tell_City +9 -12
- data/data/America/Inuvik +17 -4
- data/data/America/Iqaluit +17 -3
- data/data/America/Kentucky/Louisville +4 -4
- data/data/America/Kralendijk +4 -2
- data/data/America/Louisville +4 -4
- data/data/America/Lower_Princes +4 -2
- data/data/America/Marigot +4 -1
- data/data/America/Matamoros +1 -1
- data/data/America/Mazatlan +5 -39
- data/data/America/Merida +3 -35
- data/data/America/Metlakatla +2 -1
- data/data/America/Mexico_City +4 -36
- data/data/America/Miquelon +2 -2
- data/data/America/Monterrey +6 -33
- data/data/America/Montreal +2 -2
- data/data/America/Montserrat +4 -1
- data/data/America/Nassau +86 -2
- data/data/America/Nipigon +103 -5
- data/data/America/Nuuk +119 -0
- data/data/America/Ojinaga +38 -38
- data/data/America/Pangnirtung +51 -38
- data/data/America/Port_of_Spain +4 -1
- data/data/America/Punta_Arenas +8 -7
- data/data/America/Rainy_River +118 -67
- data/data/America/Rankin_Inlet +17 -3
- data/data/America/Resolute +17 -3
- data/data/America/Santa_Isabel +13 -7
- data/data/America/Santiago +11 -11
- data/data/America/Sao_Paulo +1 -40
- data/data/America/Scoresbysund +30 -30
- data/data/America/St_Barthelemy +4 -1
- data/data/America/St_Kitts +4 -1
- data/data/America/St_Lucia +4 -1
- data/data/America/St_Thomas +4 -1
- data/data/America/St_Vincent +4 -1
- data/data/America/Thunder_Bay +99 -5
- data/data/America/Tijuana +13 -7
- data/data/America/Toronto +2 -2
- data/data/America/Tortola +4 -1
- data/data/America/Vancouver +2 -2
- data/data/America/Virgin +4 -1
- data/data/America/Whitehorse +4 -40
- data/data/America/Yellowknife +33 -5
- data/data/Antarctica/Casey +10 -0
- data/data/Antarctica/DumontDUrville +2 -3
- data/data/Antarctica/Macquarie +58 -3
- data/data/Antarctica/Syowa +1 -1
- data/data/Antarctica/Vostok +4 -1
- data/data/Arctic/Longyearbyen +23 -21
- data/data/Asia/Almaty +2 -1
- data/data/Asia/Amman +3 -35
- data/data/Asia/Brunei +18 -2
- data/data/Asia/Choibalsan +46 -47
- data/data/Asia/Chongqing +3 -1
- data/data/Asia/Chungking +3 -1
- data/data/Asia/Damascus +1 -33
- data/data/Asia/Dili +2 -2
- data/data/Asia/Gaza +46 -40
- data/data/Asia/Harbin +3 -1
- data/data/Asia/Hebron +46 -40
- data/data/Asia/Ho_Chi_Minh +4 -4
- data/data/Asia/Hong_Kong +19 -19
- data/data/Asia/Istanbul +22 -36
- data/data/Asia/Jerusalem +37 -31
- data/data/Asia/Kuala_Lumpur +3 -3
- data/data/Asia/Manila +14 -10
- data/data/Asia/Qostanay +2 -1
- data/data/Asia/Saigon +4 -4
- data/data/Asia/Seoul +9 -1
- data/data/Asia/Shanghai +3 -1
- data/data/Asia/Singapore +1 -1
- data/data/Asia/Tehran +8 -39
- data/data/Asia/Tel_Aviv +37 -31
- data/data/Atlantic/Azores +23 -28
- data/data/Atlantic/Bermuda +29 -2
- data/data/Atlantic/Jan_Mayen +23 -21
- data/data/Atlantic/Madeira +21 -28
- data/data/Atlantic/Reykjavik +1 -68
- data/data/Australia/ACT +9 -9
- data/data/Australia/Adelaide +9 -9
- data/data/Australia/Brisbane +9 -9
- data/data/Australia/Broken_Hill +9 -9
- data/data/Australia/Canberra +9 -9
- data/data/Australia/Currie +22 -10
- data/data/Australia/Darwin +8 -8
- data/data/Australia/Eucla +7 -7
- data/data/Australia/Hobart +12 -8
- data/data/Australia/Lindeman +9 -9
- data/data/Australia/Melbourne +9 -9
- data/data/Australia/NSW +9 -9
- data/data/Australia/North +8 -8
- data/data/Australia/Perth +7 -7
- data/data/Australia/Queensland +9 -9
- data/data/Australia/South +9 -9
- data/data/Australia/Sydney +9 -9
- data/data/Australia/Tasmania +12 -8
- data/data/Australia/Victoria +9 -9
- data/data/Australia/West +7 -7
- data/data/Australia/Yancowinna +9 -9
- data/data/Brazil/East +1 -40
- data/data/CET +56 -7
- data/data/CST6CDT +90 -3
- data/data/Canada/Eastern +2 -2
- data/data/Canada/Mountain +1 -5
- data/data/Canada/Pacific +2 -2
- data/data/Canada/Yukon +4 -40
- data/data/Chile/Continental +11 -11
- data/data/Chile/EasterIsland +2 -2
- data/data/EET +24 -8
- data/data/EST +3 -1
- data/data/EST5EDT +90 -3
- data/data/Egypt +32 -0
- data/data/Eire +2 -2
- data/data/Etc/UCT +1 -1
- data/data/Europe/Amsterdam +60 -55
- data/data/Europe/Brussels +2 -2
- data/data/Europe/Budapest +24 -24
- data/data/Europe/Copenhagen +23 -14
- data/data/Europe/Dublin +2 -2
- data/data/Europe/Istanbul +22 -36
- data/data/Europe/Kaliningrad +6 -5
- data/data/Europe/Kiev +8 -8
- data/data/Europe/Kirov +44 -44
- data/data/Europe/Kyiv +124 -0
- data/data/Europe/Lisbon +25 -22
- data/data/Europe/Luxembourg +38 -36
- data/data/Europe/Monaco +9 -10
- data/data/Europe/Oslo +23 -21
- data/data/Europe/Paris +3 -3
- data/data/Europe/Rome +2 -2
- data/data/Europe/San_Marino +2 -2
- data/data/Europe/Simferopol +10 -10
- data/data/Europe/Stockholm +28 -5
- data/data/Europe/Uzhgorod +18 -17
- data/data/Europe/Vatican +2 -2
- data/data/Europe/Vienna +2 -2
- data/data/Europe/Volgograd +48 -47
- data/data/Europe/Zaporozhye +17 -18
- data/data/HST +8 -1
- data/data/Hongkong +19 -19
- data/data/Iceland +1 -68
- data/data/Indian/Antananarivo +5 -4
- data/data/Indian/Christmas +2 -1
- data/data/Indian/Cocos +4 -1
- data/data/Indian/Comoro +5 -4
- data/data/Indian/Kerguelen +2 -1
- data/data/Indian/Mahe +1 -1
- data/data/Indian/Mayotte +5 -4
- data/data/Indian/Reunion +1 -1
- data/data/Iran +8 -39
- data/data/Israel +37 -31
- data/data/MET +188 -139
- data/data/MST +12 -1
- data/data/MST7MDT +12 -3
- data/data/Mexico/BajaNorte +13 -7
- data/data/Mexico/BajaSur +5 -39
- data/data/Mexico/General +4 -36
- data/data/PRC +3 -1
- data/data/PST8PDT +39 -2
- data/data/Pacific/Apia +1 -36
- data/data/Pacific/Chuuk +2 -6
- data/data/Pacific/Easter +2 -2
- data/data/Pacific/Efate +5 -3
- data/data/Pacific/Enderbury +2 -2
- data/data/Pacific/Fiji +5 -40
- data/data/Pacific/Funafuti +1 -1
- data/data/Pacific/Kanton +4 -0
- data/data/Pacific/Majuro +1 -7
- data/data/Pacific/Niue +2 -3
- data/data/Pacific/Norfolk +42 -3
- data/data/Pacific/Pohnpei +1 -7
- data/data/Pacific/Ponape +1 -7
- data/data/Pacific/Rarotonga +3 -2
- data/data/Pacific/Tongatapu +3 -3
- data/data/Pacific/Truk +2 -6
- data/data/Pacific/Wake +1 -1
- data/data/Pacific/Wallis +1 -1
- data/data/Pacific/Yap +2 -6
- data/data/Portugal +25 -22
- data/data/ROK +9 -1
- data/data/Singapore +1 -1
- data/data/Turkey +22 -36
- data/data/UCT +1 -1
- data/data/US/Michigan +5 -1
- data/data/WET +106 -4
- data/lib/timezone/error.rb +6 -0
- data/lib/timezone/loader.rb +8 -5
- data/lib/timezone/lookup/geonames.rb +1 -0
- data/lib/timezone/lookup/google.rb +3 -2
- data/lib/timezone/lookup.rb +3 -2
- data/lib/timezone/parser.rb +33 -18
- data/lib/timezone/version.rb +1 -1
- data/lib/timezone/zone.rb +17 -17
- data/test/test_timezone.rb +2 -4
- data/test/timezone/lookup/test_geonames.rb +16 -9
- data/test/timezone/lookup/test_google.rb +7 -2
- data/test/timezone/lookup/test_test.rb +1 -0
- data/test/timezone/test_lookup.rb +5 -5
- data/test/timezone/test_zone.rb +4 -4
- data/timezone.gemspec +10 -5
- metadata +62 -16
- data/.travis.yml +0 -12
- data/data/US/Pacific-New +0 -189
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8e220ce975f55c361db6a59350652d7cf3b371d7da29722e647179b15d635ee3
|
4
|
+
data.tar.gz: 78c7eea9cd550f1d121a98952d6eec36662caca4c015430a858935f60a025cc3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56de3ca281c932f16df13c05c81fd2b85879e587192e487ac00da2f6a080da539ffb1817bfd378a37e80c3a5eb17ad5912656088f7808fcd9fedb4a00fe0a414
|
7
|
+
data.tar.gz: cc0ea4bf303824e6cd88a51dd440edc804472033c17e057943e175b41c292bfe5b96abfec1bbd263eda2ad19d6a64bfa5ef9775c4259fec921b528b9c2f5a772
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
version: "2" # required to adjust maintainability checks
|
2
|
+
|
3
|
+
checks:
|
4
|
+
argument-count:
|
5
|
+
enabled: true
|
6
|
+
config:
|
7
|
+
threshold: 5
|
8
|
+
method-complexity:
|
9
|
+
enabled: true
|
10
|
+
config:
|
11
|
+
threshold: 15
|
12
|
+
return-statements:
|
13
|
+
enabled: true
|
14
|
+
config:
|
15
|
+
threshold: 10
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby-version: ['2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4']
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- name: Set up Ruby
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby-version }}
|
22
|
+
bundler-cache: true
|
23
|
+
- name: Run Tests
|
24
|
+
run: bundle exec rake utc test
|
25
|
+
|
26
|
+
rubocop:
|
27
|
+
runs-on: ubuntu-latest
|
28
|
+
strategy:
|
29
|
+
matrix:
|
30
|
+
ruby-version: ['3.0']
|
31
|
+
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v2
|
34
|
+
- name: Set up Ruby
|
35
|
+
uses: ruby/setup-ruby@v1
|
36
|
+
with:
|
37
|
+
ruby-version: ${{ matrix.ruby-version }}
|
38
|
+
bundler-cache: true
|
39
|
+
- name: Run Rubocop
|
40
|
+
run: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
+
require: rubocop-performance
|
2
|
+
|
1
3
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.4
|
5
|
+
NewCops: enable
|
6
|
+
SuggestExtensions: false
|
3
7
|
|
4
|
-
|
5
|
-
|
8
|
+
Gemspec/RequiredRubyVersion:
|
9
|
+
Enabled: false
|
6
10
|
|
7
11
|
Layout/EmptyLineBetweenDefs:
|
8
12
|
Enabled: true
|
@@ -10,6 +14,9 @@ Layout/EmptyLineBetweenDefs:
|
|
10
14
|
Layout/MultilineMethodCallIndentation:
|
11
15
|
EnforcedStyle: indented
|
12
16
|
|
17
|
+
Layout/ParameterAlignment:
|
18
|
+
EnforcedStyle: with_fixed_indentation
|
19
|
+
|
13
20
|
Layout/SpaceAfterComma:
|
14
21
|
Enabled: true
|
15
22
|
|
@@ -23,6 +30,9 @@ Layout/SpaceBeforeSemicolon:
|
|
23
30
|
Enabled: true
|
24
31
|
|
25
32
|
|
33
|
+
Lint/MissingSuper:
|
34
|
+
Enabled: false
|
35
|
+
|
26
36
|
Lint/DuplicateMethods:
|
27
37
|
Enabled: true
|
28
38
|
|
@@ -39,7 +49,7 @@ Metrics/ClassLength:
|
|
39
49
|
# Offense count: 13
|
40
50
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
|
41
51
|
# URISchemes: http, https
|
42
|
-
|
52
|
+
Layout/LineLength:
|
43
53
|
Max: 80
|
44
54
|
|
45
55
|
Metrics/MethodLength:
|
@@ -85,12 +95,21 @@ Style/NumericLiterals:
|
|
85
95
|
Style/PreferredHashMethods:
|
86
96
|
Enabled: true
|
87
97
|
|
98
|
+
Style/RedundantArgument:
|
99
|
+
Enabled: false
|
100
|
+
|
101
|
+
Style/RedundantFetchBlock:
|
102
|
+
Enabled: false
|
103
|
+
|
88
104
|
Style/RedundantReturn:
|
89
105
|
Enabled: true
|
90
106
|
|
91
107
|
Style/RedundantSelf:
|
92
108
|
Enabled: true
|
93
109
|
|
110
|
+
Style/SafeNavigation:
|
111
|
+
Enabled: false
|
112
|
+
|
94
113
|
Style/SingleLineMethods:
|
95
114
|
Enabled: false
|
96
115
|
|
@@ -103,7 +122,7 @@ Style/StringLiterals:
|
|
103
122
|
Style/TrivialAccessors:
|
104
123
|
Enabled: true
|
105
124
|
|
106
|
-
Style/
|
125
|
+
Style/RedundantPercentQ:
|
107
126
|
Enabled: true
|
108
127
|
|
109
128
|
Style/DateTime:
|
data/CHANGES.markdown
CHANGED
@@ -1,5 +1,110 @@
|
|
1
1
|
# master (unreleased)
|
2
2
|
|
3
|
+
# 1.3.29
|
4
|
+
|
5
|
+
* Updated with `tzdata-2025b` ([@panthomakos][])
|
6
|
+
|
7
|
+
# 1.3.28
|
8
|
+
|
9
|
+
* Updated with `tzdata-2025a` ([@panthomakos][])
|
10
|
+
|
11
|
+
# 1.3.27
|
12
|
+
|
13
|
+
* Updated with `tzdata-2024b` ([@panthomakos][])
|
14
|
+
|
15
|
+
# 1.3.26
|
16
|
+
|
17
|
+
* Fix Rake 13/OpenStruct incompatibility ([@panthomakos][])
|
18
|
+
|
19
|
+
# 1.3.25
|
20
|
+
|
21
|
+
* Updated with `tzdata-2024a` ([@panthomakos][])
|
22
|
+
|
23
|
+
# 1.3.24
|
24
|
+
|
25
|
+
* Updated with `tzdata-2023d` ([@panthomakos][])
|
26
|
+
|
27
|
+
# 1.3.23
|
28
|
+
|
29
|
+
* Updated with `tzdata-2023c` ([@panthomakos][])
|
30
|
+
|
31
|
+
# 1.3.22
|
32
|
+
|
33
|
+
* Updated with `tzdata-2023b` ([@panthomakos][])
|
34
|
+
|
35
|
+
# 1.3.21
|
36
|
+
|
37
|
+
* Updated with `tzdata-2022g` ([@panthomakos][])
|
38
|
+
|
39
|
+
# 1.3.20
|
40
|
+
|
41
|
+
* Updated with `tzdata-2022f` ([@panthomakos][])
|
42
|
+
|
43
|
+
# 1.3.19
|
44
|
+
|
45
|
+
* Updated with `tzdata-2022e` ([@panthomakos][])
|
46
|
+
|
47
|
+
# 1.3.18
|
48
|
+
|
49
|
+
* Updated with `tzdata-2022d` ([@panthomakos][])
|
50
|
+
|
51
|
+
# 1.3.17
|
52
|
+
|
53
|
+
* Updated with `tzdata-2022c` ([@panthomakos][])
|
54
|
+
|
55
|
+
# 1.3.16
|
56
|
+
|
57
|
+
* Updated with `tzdata-2022a` ([@panthomakos][])
|
58
|
+
|
59
|
+
# 1.3.15
|
60
|
+
|
61
|
+
* Updated with `tzdata-2021e` ([@panthomakos][])
|
62
|
+
|
63
|
+
# 1.3.14
|
64
|
+
|
65
|
+
* Updated with `tzdata-2021d` ([@panthomakos][])
|
66
|
+
|
67
|
+
# 1.3.13
|
68
|
+
|
69
|
+
* Updated with `tzdata-2021c` ([@panthomakos][])
|
70
|
+
|
71
|
+
# 1.3.12
|
72
|
+
|
73
|
+
* Updated with `tzdata-2021a` ([@panthomakos][])
|
74
|
+
|
75
|
+
# 1.3.11
|
76
|
+
|
77
|
+
* Updated with `tzdata-2020f` ([@panthomakos][])
|
78
|
+
|
79
|
+
# 1.3.10
|
80
|
+
|
81
|
+
* Updated with `tzdata-2020d` ([@panthomakos][])
|
82
|
+
|
83
|
+
# 1.3.9
|
84
|
+
|
85
|
+
* Updated with `tzdata-2020c` ([@panthomakos][])
|
86
|
+
|
87
|
+
# 1.3.8
|
88
|
+
|
89
|
+
* Updated with `tzdata-2020b` ([@panthomakos][])
|
90
|
+
|
91
|
+
# 1.3.7
|
92
|
+
|
93
|
+
* Updated with `tzdata-2020a` ([@panthomakos][])
|
94
|
+
|
95
|
+
# 1.3.6
|
96
|
+
|
97
|
+
* Updated with `tzdata-2019c-1` ([@panthomakos][])
|
98
|
+
|
99
|
+
# 1.3.5
|
100
|
+
|
101
|
+
* Remove `@rules` from `Zone`'s `Marshall::dump`. ([@panthomakos][])
|
102
|
+
* Updated with `tzdata-2019b-1`. ([@panthomakos][])
|
103
|
+
|
104
|
+
# 1.3.4
|
105
|
+
|
106
|
+
* Updated with `tzdata-2019a-1`. (panthomakos)
|
107
|
+
|
3
108
|
# 1.3.3
|
4
109
|
|
5
110
|
* Updated with `tzdata-2018i-1`. (panthomakos)
|
@@ -205,3 +310,5 @@
|
|
205
310
|
# 0.1.2
|
206
311
|
|
207
312
|
* Fixed `#utc_offset` rule selection. (natemueller)
|
313
|
+
|
314
|
+
[@panthomakos]: https://github.com/panthomakos
|
data/CONTRIBUTING.markdown
CHANGED
@@ -6,12 +6,16 @@
|
|
6
6
|
|
7
7
|
# How to Acquire New TZData Information
|
8
8
|
|
9
|
-
* Download
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
* Download and unzip the IANA timezone database (code and data) into the same directory. Use the timezone database README instructions to install. For example:
|
10
|
+
|
11
|
+
make TOPDIR=$HOME/Downloads/tz install
|
12
|
+
|
13
|
+
* Provide the root directory (TOPDIR) as the TZPATH environment variable. For example:
|
14
|
+
|
15
|
+
TZPATH=$HOME/Downloads/tz bundle exec rake parse
|
16
|
+
|
17
|
+
* Commit changes. For an example, see [this commit](https://github.com/panthomakos/timezone/commit/5815112d7a6c8740844189db0f05281e9c98f58f).
|
13
18
|
|
14
19
|
# Notes
|
15
20
|
|
16
|
-
* How to read TZData IANA source files:
|
17
|
-
http://www.cstdbill.com/tzdb/tz-how-to.html
|
21
|
+
* How to read TZData IANA source files: http://www.cstdbill.com/tzdb/tz-how-to.html
|
data/README.markdown
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
# Timezone
|
2
|
+

|
3
|
+
[](https://codeclimate.com/github/panthomakos/timezone/maintainability)
|
2
4
|
|
3
5
|
Accurate current and history timezones for Ruby.
|
4
6
|
|
5
|
-
* Uses [
|
6
|
-
* Uses the [
|
7
|
+
* Uses [IANA Timezone Database][tz-database] for up-to-date historical timezone calculations.
|
8
|
+
* Uses the [Geonames API][geonames-api] or the [Google Timezone API][google-api] for timezone latitude and longitude lookup.
|
7
9
|
|
8
|
-
[tz-database]:
|
10
|
+
[tz-database]: https://www.iana.org/time-zones
|
9
11
|
[geonames-api]: http://www.geonames.org/export/web-services.html
|
10
12
|
[google-api]: https://developers.google.com/maps/documentation/timezone/
|
11
13
|
|
@@ -246,7 +248,3 @@ You can also provide a fallback lookup, which will be returned if you query an u
|
|
246
248
|
|
247
249
|
::Timezone::Lookup.lookup.default('America/Los_Angeles')
|
248
250
|
=> "America/Los_Angeles"
|
249
|
-
|
250
|
-
## Build Status [](http://travis-ci.org/panthomakos/timezone)
|
251
|
-
|
252
|
-
## Code Quality [](https://codeclimate.com/github/panthomakos/timezone)
|
data/Rakefile
CHANGED
@@ -19,7 +19,9 @@ task(:utc) { ENV['TZ'] = 'UTC' }
|
|
19
19
|
task default: %i[utc test rubocop]
|
20
20
|
|
21
21
|
task parse: :utc do
|
22
|
+
path = ENV['TZPATH'] || File.join(ENV['HOME'], 'Downloads', 'tz')
|
23
|
+
|
22
24
|
require 'timezone/parser'
|
23
25
|
|
24
|
-
Timezone::Parser.new.perform
|
26
|
+
Timezone::Parser.new(path).perform
|
25
27
|
end
|
data/benchmark.rb
CHANGED
@@ -4,42 +4,29 @@
|
|
4
4
|
require 'benchmark'
|
5
5
|
require 'timezone'
|
6
6
|
|
7
|
-
def load_tz(timezone)
|
8
|
-
Timezone.fetch(timezone)
|
9
|
-
end
|
10
|
-
|
11
7
|
puts 'Loading timezones'
|
12
8
|
|
13
|
-
LOAD_ITERATIONS = 1_000
|
14
9
|
Benchmark.bm do |x|
|
15
|
-
x.report('la') {
|
16
|
-
x.report('hk') {
|
17
|
-
end
|
18
|
-
|
19
|
-
def calc_local(timezone)
|
20
|
-
timezone.time(Time.utc(3000, 1, 1))
|
10
|
+
x.report('la') { 10_000.times { Timezone.fetch('America/Los_Angeles') } }
|
11
|
+
x.report('hk') { 10_000.times { Timezone.fetch('Asia/Hong_Kong') } }
|
21
12
|
end
|
22
13
|
|
23
|
-
|
24
|
-
|
25
|
-
LOCAL_ITERATIONS = 10_000
|
26
|
-
Benchmark.bm do |x|
|
27
|
-
timezone = Timezone.fetch('America/Los_Angeles')
|
28
|
-
x.report('la') { LOCAL_ITERATIONS.times { calc_local(timezone) } }
|
29
|
-
timezone = Timezone.fetch('Asia/Hong_Kong')
|
30
|
-
x.report('hk') { LOCAL_ITERATIONS.times { calc_local(timezone) } }
|
14
|
+
def calc(method, timezone, time)
|
15
|
+
timezone.public_send(method, time)
|
31
16
|
end
|
32
17
|
|
33
|
-
def
|
34
|
-
|
18
|
+
def bench(iterations, method)
|
19
|
+
Benchmark.bm do |x|
|
20
|
+
time = Time.utc(3000, 1, 1)
|
21
|
+
timezone = Timezone.fetch('America/Los_Angeles')
|
22
|
+
x.report('la') { iterations.times { calc(method, timezone, time) } }
|
23
|
+
timezone = Timezone.fetch('Asia/Hong_Kong')
|
24
|
+
x.report('hk') { iterations.times { calc(method, timezone, time) } }
|
25
|
+
end
|
35
26
|
end
|
36
27
|
|
37
|
-
puts 'Calculating
|
28
|
+
puts 'Calculating LOCAL (#time)'
|
29
|
+
bench(10_000, :time)
|
38
30
|
|
39
|
-
|
40
|
-
|
41
|
-
timezone = Timezone.fetch('America/Los_Angeles')
|
42
|
-
x.report('la') { UTC_ITERATIONS.times { calc_utc(timezone) } }
|
43
|
-
timezone = Timezone.fetch('Asia/Hong_Kong')
|
44
|
-
x.report('hk') { UTC_ITERATIONS.times { calc_utc(timezone) } }
|
45
|
-
end
|
31
|
+
puts 'Calculating UTC (#local_to_utc)'
|
32
|
+
bench(10_000, :local_to_utc)
|
data/data/Africa/Accra
CHANGED
@@ -1,48 +1,2 @@
|
|
1
|
-
-
|
2
|
-
84153548:GMT:0:0
|
3
|
-
10453200:+0020:1:1200
|
4
|
-
21082800:GMT:0:0
|
5
|
-
10453200:+0020:1:1200
|
6
|
-
21082800:GMT:0:0
|
7
|
-
10453200:+0020:1:1200
|
8
|
-
21082800:GMT:0:0
|
9
|
-
10453200:+0020:1:1200
|
10
|
-
21169200:GMT:0:0
|
11
|
-
10453200:+0020:1:1200
|
12
|
-
21082800:GMT:0:0
|
13
|
-
10453200:+0020:1:1200
|
14
|
-
21082800:GMT:0:0
|
15
|
-
10453200:+0020:1:1200
|
16
|
-
21082800:GMT:0:0
|
17
|
-
10453200:+0020:1:1200
|
18
|
-
21169200:GMT:0:0
|
19
|
-
10453200:+0020:1:1200
|
20
|
-
21082800:GMT:0:0
|
21
|
-
10453200:+0020:1:1200
|
22
|
-
21082800:GMT:0:0
|
23
|
-
10453200:+0020:1:1200
|
24
|
-
21082800:GMT:0:0
|
25
|
-
10453200:+0020:1:1200
|
26
|
-
21169200:GMT:0:0
|
27
|
-
10453200:+0020:1:1200
|
28
|
-
21082800:GMT:0:0
|
29
|
-
10453200:+0020:1:1200
|
30
|
-
21082800:GMT:0:0
|
31
|
-
10453200:+0020:1:1200
|
32
|
-
21082800:GMT:0:0
|
33
|
-
10453200:+0020:1:1200
|
34
|
-
21169200:GMT:0:0
|
35
|
-
10453200:+0020:1:1200
|
36
|
-
21082800:GMT:0:0
|
37
|
-
10453200:+0020:1:1200
|
38
|
-
21082800:GMT:0:0
|
39
|
-
10453200:+0020:1:1200
|
40
|
-
21082800:GMT:0:0
|
41
|
-
10453200:+0020:1:1200
|
42
|
-
21169200:GMT:0:0
|
43
|
-
10453200:+0020:1:1200
|
44
|
-
21082800:GMT:0:0
|
45
|
-
10453200:+0020:1:1200
|
46
|
-
21082800:GMT:0:0
|
47
|
-
10453200:+0020:1:1200
|
1
|
+
-1830383033:LMT:0:-968
|
48
2
|
1:GMT:0:0
|
data/data/Africa/Addis_Ababa
CHANGED
data/data/Africa/Algiers
CHANGED
data/data/Africa/Asmara
CHANGED
data/data/Africa/Asmera
CHANGED
data/data/Africa/Bangui
CHANGED
data/data/Africa/Blantyre
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
-
|
1
|
+
-1924999819:LMT:0:7818
|
2
2
|
1:CAT:0:7200
|
data/data/Africa/Brazzaville
CHANGED
data/data/Africa/Bujumbura
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
-
|
1
|
+
-1924999819:LMT:0:7818
|
2
2
|
1:CAT:0:7200
|
data/data/Africa/Cairo
CHANGED
@@ -125,4 +125,36 @@
|
|
125
125
|
3625200:EEST:1:10800
|
126
126
|
3027600:EET:0:7200
|
127
127
|
4834800:EEST:1:10800
|
128
|
+
270954000:EET:0:7200
|
129
|
+
15721200:EEST:1:10800
|
130
|
+
15728400:EET:0:7200
|
131
|
+
16326000:EEST:1:10800
|
132
|
+
15123600:EET:0:7200
|
133
|
+
16326000:EEST:1:10800
|
134
|
+
15123600:EET:0:7200
|
135
|
+
16326000:EEST:1:10800
|
136
|
+
15728400:EET:0:7200
|
137
|
+
15721200:EEST:1:10800
|
138
|
+
15728400:EET:0:7200
|
139
|
+
15721200:EEST:1:10800
|
140
|
+
15728400:EET:0:7200
|
141
|
+
15721200:EEST:1:10800
|
142
|
+
15728400:EET:0:7200
|
143
|
+
16326000:EEST:1:10800
|
144
|
+
15123600:EET:0:7200
|
145
|
+
16326000:EEST:1:10800
|
146
|
+
15728400:EET:0:7200
|
147
|
+
15721200:EEST:1:10800
|
148
|
+
15728400:EET:0:7200
|
149
|
+
15721200:EEST:1:10800
|
150
|
+
15728400:EET:0:7200
|
151
|
+
15721200:EEST:1:10800
|
152
|
+
15728400:EET:0:7200
|
153
|
+
15721200:EEST:1:10800
|
154
|
+
15728400:EET:0:7200
|
155
|
+
16326000:EEST:1:10800
|
156
|
+
15123600:EET:0:7200
|
157
|
+
16326000:EEST:1:10800
|
158
|
+
15728400:EET:0:7200
|
159
|
+
15721200:EEST:1:10800
|
128
160
|
1:EET:0:7200
|
data/data/Africa/Casablanca
CHANGED
@@ -56,8 +56,8 @@
|
|
56
56
|
16329600:+01:0:3600
|
57
57
|
3024000:+00:1:0
|
58
58
|
27216000:+01:0:3600
|
59
|
-
|
60
|
-
|
59
|
+
3628800:+00:1:0
|
60
|
+
27216000:+01:0:3600
|
61
61
|
3024000:+00:1:0
|
62
62
|
27216000:+01:0:3600
|
63
63
|
3628800:+00:1:0
|
@@ -72,8 +72,8 @@
|
|
72
72
|
27820800:+01:0:3600
|
73
73
|
3024000:+00:1:0
|
74
74
|
27216000:+01:0:3600
|
75
|
-
|
76
|
-
|
75
|
+
3628800:+00:1:0
|
76
|
+
27216000:+01:0:3600
|
77
77
|
3024000:+00:1:0
|
78
78
|
27216000:+01:0:3600
|
79
79
|
3628800:+00:1:0
|
@@ -88,9 +88,11 @@
|
|
88
88
|
27216000:+01:0:3600
|
89
89
|
3628800:+00:1:0
|
90
90
|
27216000:+01:0:3600
|
91
|
-
|
92
|
-
|
91
|
+
3628800:+00:1:0
|
92
|
+
27216000:+01:0:3600
|
93
93
|
3024000:+00:1:0
|
94
94
|
27216000:+01:0:3600
|
95
95
|
3628800:+00:1:0
|
96
|
+
27216000:+01:0:3600
|
97
|
+
3024000:+00:1:0
|
96
98
|
1:+01:0:3600
|
data/data/Africa/Dar_es_Salaam
CHANGED
data/data/Africa/Djibouti
CHANGED
data/data/Africa/Douala
CHANGED
data/data/Africa/El_Aaiun
CHANGED
@@ -45,8 +45,8 @@
|
|
45
45
|
16329600:+01:0:3600
|
46
46
|
3024000:+00:1:0
|
47
47
|
27216000:+01:0:3600
|
48
|
-
|
49
|
-
|
48
|
+
3628800:+00:1:0
|
49
|
+
27216000:+01:0:3600
|
50
50
|
3024000:+00:1:0
|
51
51
|
27216000:+01:0:3600
|
52
52
|
3628800:+00:1:0
|
@@ -61,8 +61,8 @@
|
|
61
61
|
27820800:+01:0:3600
|
62
62
|
3024000:+00:1:0
|
63
63
|
27216000:+01:0:3600
|
64
|
-
|
65
|
-
|
64
|
+
3628800:+00:1:0
|
65
|
+
27216000:+01:0:3600
|
66
66
|
3024000:+00:1:0
|
67
67
|
27216000:+01:0:3600
|
68
68
|
3628800:+00:1:0
|
@@ -77,9 +77,11 @@
|
|
77
77
|
27216000:+01:0:3600
|
78
78
|
3628800:+00:1:0
|
79
79
|
27216000:+01:0:3600
|
80
|
-
|
81
|
-
|
80
|
+
3628800:+00:1:0
|
81
|
+
27216000:+01:0:3600
|
82
82
|
3024000:+00:1:0
|
83
83
|
27216000:+01:0:3600
|
84
84
|
3628800:+00:1:0
|
85
|
+
27216000:+01:0:3600
|
86
|
+
3024000:+00:1:0
|
85
87
|
1:+01:0:3600
|
data/data/Africa/Gaborone
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
-
|
1
|
+
-1924999819:LMT:0:7818
|
2
2
|
1:CAT:0:7200
|
data/data/Africa/Harare
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
-
|
1
|
+
-1924999819:LMT:0:7818
|
2
2
|
1:CAT:0:7200
|
data/data/Africa/Juba
CHANGED
data/data/Africa/Kampala
CHANGED
data/data/Africa/Kigali
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
-
|
1
|
+
-1924999819:LMT:0:7818
|
2
2
|
1:CAT:0:7200
|