timezone 1.3.5 → 1.3.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGES.markdown +20 -0
- data/CONTRIBUTING.markdown +8 -2
- data/Rakefile +3 -1
- data/benchmark.rb +16 -29
- data/data/Africa/Algiers +2 -2
- data/data/Africa/Casablanca +11 -11
- data/data/Africa/El_Aaiun +11 -11
- data/data/America/Dawson +2 -38
- data/data/America/Detroit +5 -1
- data/data/America/Edmonton +1 -5
- data/data/America/Indiana/Tell_City +9 -12
- data/data/America/Kentucky/Louisville +4 -4
- data/data/America/Louisville +4 -4
- data/data/America/Nuuk +120 -0
- data/data/America/Vancouver +2 -2
- data/data/America/Whitehorse +2 -38
- data/data/Antarctica/Casey +6 -1
- data/data/Antarctica/Macquarie +56 -1
- data/data/Asia/Chongqing +3 -1
- data/data/Asia/Chungking +3 -1
- data/data/Asia/Gaza +41 -41
- data/data/Asia/Harbin +3 -1
- data/data/Asia/Hebron +41 -41
- data/data/Asia/Hong_Kong +1 -1
- data/data/Asia/Istanbul +22 -36
- data/data/Asia/Seoul +9 -1
- data/data/Asia/Shanghai +3 -1
- data/data/Canada/Mountain +1 -5
- data/data/Canada/Pacific +2 -2
- data/data/Canada/Yukon +2 -38
- data/data/Europe/Brussels +2 -2
- data/data/Europe/Budapest +24 -24
- data/data/Europe/Istanbul +22 -36
- data/data/Europe/Kaliningrad +6 -5
- data/data/Europe/Monaco +3 -3
- data/data/Europe/Paris +3 -3
- data/data/Europe/Vienna +2 -2
- data/data/Hongkong +1 -1
- data/data/PRC +3 -1
- data/data/Pacific/Fiji +32 -32
- data/data/Pacific/Norfolk +42 -3
- data/data/ROK +9 -1
- data/data/Turkey +22 -36
- data/data/US/Michigan +5 -1
- data/lib/timezone/parser.rb +28 -14
- data/lib/timezone/version.rb +1 -1
- data/timezone.gemspec +0 -2
- metadata +8 -8
- data/data/US/Pacific-New +0 -189
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
|
-
|
15
|
+
465440400:EET:0:7200
|
16
16
|
8377200:EEST:1:10800
|
17
|
-
|
17
|
+
4842000:EET:0:7200
|
18
18
|
25398000:EEST:1:10800
|
19
19
|
16592400:EET:0:7200
|
20
|
-
|
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
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
57
|
-
|
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
|
-
|
51
|
+
34218000:+03:0:10800
|
52
|
+
14688000:EET:0:7200
|
67
53
|
13910400:EEST:1:10800
|
68
|
-
|
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/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
|
-
|
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/lib/timezone/parser.rb
CHANGED
@@ -11,28 +11,42 @@ module Timezone
|
|
11
11
|
|
12
12
|
LINE = /\s*(.+)\s*=\s*(.+)\s*isdst=(\d+)\s*gmtoff=([\+\-]*\d+)/
|
13
13
|
|
14
|
-
|
14
|
+
# Bookkeeping files that we do not want to parse.
|
15
|
+
IGNORE = ['leapseconds', 'posixrules', 'tzdata.zi'].freeze
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
def initialize(zoneinfo = ZONEINFO_DIR)
|
19
|
-
@zoneinfo = zoneinfo
|
17
|
+
def initialize(root)
|
18
|
+
@config = Config.new(root)
|
20
19
|
end
|
21
20
|
|
22
21
|
def perform
|
23
22
|
FileUtils.rm_rf('data')
|
24
23
|
|
25
|
-
Dir["#{zoneinfo}
|
24
|
+
Dir["#{@config.zoneinfo}/**/*"].each do |file|
|
26
25
|
next if File.directory?(file)
|
26
|
+
next if file.end_with?('.tab')
|
27
|
+
next if IGNORE.include?(File.basename(file))
|
27
28
|
parse(file)
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
32
|
+
# Represents a timezone database config.
|
33
|
+
class Config
|
34
|
+
def initialize(root)
|
35
|
+
@root = root
|
36
|
+
@zoneinfo = File.join(@root, 'usr/share/zoneinfo')
|
37
|
+
@zdump = File.join(@root, 'usr/bin/zdump')
|
38
|
+
end
|
39
|
+
|
40
|
+
attr_reader :root, :zoneinfo, :zdump
|
41
|
+
end
|
42
|
+
|
43
|
+
private_constant :Config
|
44
|
+
|
31
45
|
# Represents a single timezone data file line for a reference timezone.
|
32
46
|
class RefLine
|
33
|
-
def initialize(
|
47
|
+
def initialize(config, file)
|
34
48
|
first =
|
35
|
-
|
49
|
+
`#{config.zdump} -i #{file}`
|
36
50
|
.split("\n")
|
37
51
|
.reject(&:empty?)
|
38
52
|
.reject { |line| line.start_with?('TZ=') }
|
@@ -85,15 +99,15 @@ module Timezone
|
|
85
99
|
private
|
86
100
|
|
87
101
|
def parse(file)
|
88
|
-
zone = file.gsub("#{zoneinfo}/
|
102
|
+
zone = file.gsub("#{@config.zoneinfo}/", '')
|
89
103
|
print "Parsing #{zone}... "
|
90
|
-
data = zdump(
|
104
|
+
data = zdump(file)
|
91
105
|
|
92
106
|
last = 0
|
93
107
|
result = []
|
94
108
|
|
95
109
|
data.split("\n").each do |line|
|
96
|
-
match = line.gsub(
|
110
|
+
match = line.gsub(/^#{file}\s+/, '').match(LINE)
|
97
111
|
next if match.nil?
|
98
112
|
|
99
113
|
line = Line.new(match)
|
@@ -112,14 +126,14 @@ module Timezone
|
|
112
126
|
result << line
|
113
127
|
end
|
114
128
|
|
115
|
-
result << RefLine.new(
|
129
|
+
result << RefLine.new(@config, file) if result.empty?
|
116
130
|
|
117
131
|
write(zone, result)
|
118
132
|
puts 'DONE'
|
119
133
|
end
|
120
134
|
|
121
|
-
def zdump(
|
122
|
-
|
135
|
+
def zdump(file)
|
136
|
+
`#{@config.zdump} -v -c #{MIN_YEAR},#{MAX_YEAR} #{file}`
|
123
137
|
end
|
124
138
|
|
125
139
|
def write(zone, data)
|
data/lib/timezone/version.rb
CHANGED
data/timezone.gemspec
CHANGED
@@ -16,8 +16,6 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.description = 'Accurate current and historical timezones for Ruby with ' \
|
17
17
|
'support for Geonames and Google latitude - longitude lookups.'
|
18
18
|
|
19
|
-
s.rubyforge_project = 'timezone'
|
20
|
-
|
21
19
|
s.files = `git ls-files`.split("\n")
|
22
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
21
|
s.executables = `git ls-files -- bin/*`
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: timezone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pan Thomakos
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -263,6 +263,7 @@ files:
|
|
263
263
|
- data/America/North_Dakota/Beulah
|
264
264
|
- data/America/North_Dakota/Center
|
265
265
|
- data/America/North_Dakota/New_Salem
|
266
|
+
- data/America/Nuuk
|
266
267
|
- data/America/Ojinaga
|
267
268
|
- data/America/Panama
|
268
269
|
- data/America/Pangnirtung
|
@@ -675,7 +676,6 @@ files:
|
|
675
676
|
- data/US/Michigan
|
676
677
|
- data/US/Mountain
|
677
678
|
- data/US/Pacific
|
678
|
-
- data/US/Pacific-New
|
679
679
|
- data/US/Samoa
|
680
680
|
- data/UTC
|
681
681
|
- data/Universal
|
@@ -728,7 +728,7 @@ homepage: https://github.com/panthomakos/timezone
|
|
728
728
|
licenses:
|
729
729
|
- MIT
|
730
730
|
metadata: {}
|
731
|
-
post_install_message:
|
731
|
+
post_install_message:
|
732
732
|
rdoc_options:
|
733
733
|
- "--charset=UTF-8"
|
734
734
|
require_paths:
|
@@ -744,10 +744,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
744
744
|
- !ruby/object:Gem::Version
|
745
745
|
version: '0'
|
746
746
|
requirements: []
|
747
|
-
rubygems_version: 3.
|
748
|
-
signing_key:
|
747
|
+
rubygems_version: 3.1.2
|
748
|
+
signing_key:
|
749
749
|
specification_version: 4
|
750
|
-
summary: timezone-1.3.
|
750
|
+
summary: timezone-1.3.10
|
751
751
|
test_files:
|
752
752
|
- test/data/Helsinki_rules_without_timestamps.json
|
753
753
|
- test/data/asia
|
data/data/US/Pacific-New
DELETED
@@ -1,189 +0,0 @@
|
|
1
|
-
-2717640001:LMT:0:-28378
|
2
|
-
1084370400:PST:0:-28800
|
3
|
-
18140400:PDT:1:-25200
|
4
|
-
13309200:PST:0:-28800
|
5
|
-
18140400:PDT:1:-25200
|
6
|
-
703472400:PST:0:-28800
|
7
|
-
110811600:PWT:1:-25200
|
8
|
-
4010400:PPT:1:-25200
|
9
|
-
77418060:PST:0:-28800
|
10
|
-
25311540:PDT:1:-25200
|
11
|
-
41817600:PST:0:-28800
|
12
|
-
12700800:PDT:1:-25200
|
13
|
-
18748800:PST:0:-28800
|
14
|
-
13305600:PDT:1:-25200
|
15
|
-
18144000:PST:0:-28800
|
16
|
-
13305600:PDT:1:-25200
|
17
|
-
18144000:PST:0:-28800
|
18
|
-
13305600:PDT:1:-25200
|
19
|
-
18144000:PST:0:-28800
|
20
|
-
13305600:PDT:1:-25200
|
21
|
-
18144000:PST:0:-28800
|
22
|
-
13305600:PDT:1:-25200
|
23
|
-
18748800:PST:0:-28800
|
24
|
-
13305600:PDT:1:-25200
|
25
|
-
18144000:PST:0:-28800
|
26
|
-
13305600:PDT:1:-25200
|
27
|
-
18144000:PST:0:-28800
|
28
|
-
13305600:PDT:1:-25200
|
29
|
-
18144000:PST:0:-28800
|
30
|
-
13305600:PDT:1:-25200
|
31
|
-
18144000:PST:0:-28800
|
32
|
-
13305600:PDT:1:-25200
|
33
|
-
18748800:PST:0:-28800
|
34
|
-
12700800:PDT:1:-25200
|
35
|
-
18748800:PST:0:-28800
|
36
|
-
15724800:PDT:1:-25200
|
37
|
-
15724800:PST:0:-28800
|
38
|
-
15724800:PDT:1:-25200
|
39
|
-
15724800:PST:0:-28800
|
40
|
-
15724800:PDT:1:-25200
|
41
|
-
15724800:PST:0:-28800
|
42
|
-
16329600:PDT:1:-25200
|
43
|
-
15120000:PST:0:-28800
|
44
|
-
16329600:PDT:1:-25200
|
45
|
-
15728400:PST:0:-28800
|
46
|
-
15721200:PDT:1:-25200
|
47
|
-
15728400:PST:0:-28800
|
48
|
-
15721200:PDT:1:-25200
|
49
|
-
15728400:PST:0:-28800
|
50
|
-
15721200:PDT:1:-25200
|
51
|
-
15728400:PST:0:-28800
|
52
|
-
15721200:PDT:1:-25200
|
53
|
-
15728400:PST:0:-28800
|
54
|
-
16326000:PDT:1:-25200
|
55
|
-
15728400:PST:0:-28800
|
56
|
-
15721200:PDT:1:-25200
|
57
|
-
15728400:PST:0:-28800
|
58
|
-
15721200:PDT:1:-25200
|
59
|
-
6051600:PST:0:-28800
|
60
|
-
25398000:PDT:1:-25200
|
61
|
-
10285200:PST:0:-28800
|
62
|
-
21164400:PDT:1:-25200
|
63
|
-
15728400:PST:0:-28800
|
64
|
-
16326000:PDT:1:-25200
|
65
|
-
15123600:PST:0:-28800
|
66
|
-
16326000:PDT:1:-25200
|
67
|
-
15728400:PST:0:-28800
|
68
|
-
15721200:PDT:1:-25200
|
69
|
-
15728400:PST:0:-28800
|
70
|
-
15721200:PDT:1:-25200
|
71
|
-
15728400:PST:0:-28800
|
72
|
-
15721200:PDT:1:-25200
|
73
|
-
15728400:PST:0:-28800
|
74
|
-
15721200:PDT:1:-25200
|
75
|
-
15728400:PST:0:-28800
|
76
|
-
16326000:PDT:1:-25200
|
77
|
-
15123600:PST:0:-28800
|
78
|
-
16326000:PDT:1:-25200
|
79
|
-
15728400:PST:0:-28800
|
80
|
-
15721200:PDT:1:-25200
|
81
|
-
15728400:PST:0:-28800
|
82
|
-
15721200:PDT:1:-25200
|
83
|
-
15728400:PST:0:-28800
|
84
|
-
15721200:PDT:1:-25200
|
85
|
-
13914000:PST:0:-28800
|
86
|
-
17535600:PDT:1:-25200
|
87
|
-
13914000:PST:0:-28800
|
88
|
-
18140400:PDT:1:-25200
|
89
|
-
13309200:PST:0:-28800
|
90
|
-
18140400:PDT:1:-25200
|
91
|
-
13309200:PST:0:-28800
|
92
|
-
18140400:PDT:1:-25200
|
93
|
-
13914000:PST:0:-28800
|
94
|
-
17535600:PDT:1:-25200
|
95
|
-
13914000:PST:0:-28800
|
96
|
-
17535600:PDT:1:-25200
|
97
|
-
13914000:PST:0:-28800
|
98
|
-
18140400:PDT:1:-25200
|
99
|
-
13309200:PST:0:-28800
|
100
|
-
18140400:PDT:1:-25200
|
101
|
-
13309200:PST:0:-28800
|
102
|
-
18140400:PDT:1:-25200
|
103
|
-
13914000:PST:0:-28800
|
104
|
-
17535600:PDT:1:-25200
|
105
|
-
13914000:PST:0:-28800
|
106
|
-
17535600:PDT:1:-25200
|
107
|
-
13914000:PST:0:-28800
|
108
|
-
17535600:PDT:1:-25200
|
109
|
-
13914000:PST:0:-28800
|
110
|
-
18140400:PDT:1:-25200
|
111
|
-
13309200:PST:0:-28800
|
112
|
-
18140400:PDT:1:-25200
|
113
|
-
13309200:PST:0:-28800
|
114
|
-
18140400:PDT:1:-25200
|
115
|
-
13914000:PST:0:-28800
|
116
|
-
17535600:PDT:1:-25200
|
117
|
-
13914000:PST:0:-28800
|
118
|
-
17535600:PDT:1:-25200
|
119
|
-
13914000:PST:0:-28800
|
120
|
-
18140400:PDT:1:-25200
|
121
|
-
13309200:PST:0:-28800
|
122
|
-
18140400:PDT:1:-25200
|
123
|
-
13309200:PST:0:-28800
|
124
|
-
18140400:PDT:1:-25200
|
125
|
-
11494800:PST:0:-28800
|
126
|
-
20559600:PDT:1:-25200
|
127
|
-
10890000:PST:0:-28800
|
128
|
-
20559600:PDT:1:-25200
|
129
|
-
10890000:PST:0:-28800
|
130
|
-
20559600:PDT:1:-25200
|
131
|
-
11494800:PST:0:-28800
|
132
|
-
20559600:PDT:1:-25200
|
133
|
-
10890000:PST:0:-28800
|
134
|
-
20559600:PDT:1:-25200
|
135
|
-
10890000:PST:0:-28800
|
136
|
-
20559600:PDT:1:-25200
|
137
|
-
10890000:PST:0:-28800
|
138
|
-
20559600:PDT:1:-25200
|
139
|
-
10890000:PST:0:-28800
|
140
|
-
20559600:PDT:1:-25200
|
141
|
-
10890000:PST:0:-28800
|
142
|
-
20559600:PDT:1:-25200
|
143
|
-
11494800:PST:0:-28800
|
144
|
-
20559600:PDT:1:-25200
|
145
|
-
10890000:PST:0:-28800
|
146
|
-
20559600:PDT:1:-25200
|
147
|
-
10890000:PST:0:-28800
|
148
|
-
20559600:PDT:1:-25200
|
149
|
-
10890000:PST:0:-28800
|
150
|
-
20559600:PDT:1:-25200
|
151
|
-
10890000:PST:0:-28800
|
152
|
-
20559600:PDT:1:-25200
|
153
|
-
11494800:PST:0:-28800
|
154
|
-
20559600:PDT:1:-25200
|
155
|
-
10890000:PST:0:-28800
|
156
|
-
20559600:PDT:1:-25200
|
157
|
-
10890000:PST:0:-28800
|
158
|
-
20559600:PDT:1:-25200
|
159
|
-
10890000:PST:0:-28800
|
160
|
-
20559600:PDT:1:-25200
|
161
|
-
10890000:PST:0:-28800
|
162
|
-
20559600:PDT:1:-25200
|
163
|
-
10890000:PST:0:-28800
|
164
|
-
20559600:PDT:1:-25200
|
165
|
-
11494800:PST:0:-28800
|
166
|
-
20559600:PDT:1:-25200
|
167
|
-
10890000:PST:0:-28800
|
168
|
-
20559600:PDT:1:-25200
|
169
|
-
10890000:PST:0:-28800
|
170
|
-
20559600:PDT:1:-25200
|
171
|
-
10890000:PST:0:-28800
|
172
|
-
20559600:PDT:1:-25200
|
173
|
-
10890000:PST:0:-28800
|
174
|
-
20559600:PDT:1:-25200
|
175
|
-
11494800:PST:0:-28800
|
176
|
-
20559600:PDT:1:-25200
|
177
|
-
10890000:PST:0:-28800
|
178
|
-
20559600:PDT:1:-25200
|
179
|
-
10890000:PST:0:-28800
|
180
|
-
20559600:PDT:1:-25200
|
181
|
-
10890000:PST:0:-28800
|
182
|
-
20559600:PDT:1:-25200
|
183
|
-
10890000:PST:0:-28800
|
184
|
-
20559600:PDT:1:-25200
|
185
|
-
10890000:PST:0:-28800
|
186
|
-
20559600:PDT:1:-25200
|
187
|
-
11494800:PST:0:-28800
|
188
|
-
20559600:PDT:1:-25200
|
189
|
-
1:PST:0:-28800
|