timezone 1.3.4 → 1.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGES.markdown +23 -0
  4. data/CONTRIBUTING.markdown +10 -6
  5. data/Rakefile +3 -1
  6. data/benchmark.rb +16 -29
  7. data/data/Africa/Algiers +2 -2
  8. data/data/Africa/Casablanca +12 -10
  9. data/data/Africa/El_Aaiun +12 -10
  10. data/data/America/Campo_Grande +1 -40
  11. data/data/America/Cuiaba +1 -40
  12. data/data/America/Dawson +2 -38
  13. data/data/America/Detroit +5 -1
  14. data/data/America/Edmonton +1 -5
  15. data/data/America/Indiana/Tell_City +9 -12
  16. data/data/America/Kentucky/Louisville +4 -4
  17. data/data/America/Louisville +4 -4
  18. data/data/America/Nuuk +120 -0
  19. data/data/America/Sao_Paulo +1 -40
  20. data/data/America/Vancouver +2 -2
  21. data/data/America/Whitehorse +2 -38
  22. data/data/Antarctica/Casey +6 -1
  23. data/data/Antarctica/Macquarie +56 -1
  24. data/data/Asia/Chongqing +3 -1
  25. data/data/Asia/Chungking +3 -1
  26. data/data/Asia/Gaza +40 -40
  27. data/data/Asia/Harbin +3 -1
  28. data/data/Asia/Hebron +40 -40
  29. data/data/Asia/Hong_Kong +19 -19
  30. data/data/Asia/Istanbul +22 -36
  31. data/data/Asia/Seoul +9 -1
  32. data/data/Asia/Shanghai +3 -1
  33. data/data/Brazil/East +1 -40
  34. data/data/Canada/Mountain +1 -5
  35. data/data/Canada/Pacific +2 -2
  36. data/data/Canada/Yukon +2 -38
  37. data/data/Europe/Brussels +2 -2
  38. data/data/Europe/Budapest +24 -24
  39. data/data/Europe/Istanbul +22 -36
  40. data/data/Europe/Kaliningrad +6 -5
  41. data/data/Europe/Monaco +3 -3
  42. data/data/Europe/Paris +3 -3
  43. data/data/Europe/Rome +2 -2
  44. data/data/Europe/San_Marino +2 -2
  45. data/data/Europe/Vatican +2 -2
  46. data/data/Europe/Vienna +2 -2
  47. data/data/Hongkong +19 -19
  48. data/data/PRC +3 -1
  49. data/data/Pacific/Fiji +32 -32
  50. data/data/Pacific/Norfolk +42 -3
  51. data/data/ROK +9 -1
  52. data/data/Turkey +22 -36
  53. data/data/US/Michigan +5 -1
  54. data/lib/timezone/loader.rb +6 -3
  55. data/lib/timezone/parser.rb +28 -14
  56. data/lib/timezone/version.rb +1 -1
  57. data/lib/timezone/zone.rb +17 -16
  58. data/timezone.gemspec +0 -2
  59. metadata +8 -8
  60. data/data/US/Pacific-New +0 -189
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a013b73f775f4c979d2cdbe2c0d147d4009e876e7e7722f2507ce485cf850508
4
- data.tar.gz: fb305a35c41aa16d593b96f50f4b702558fc41250957a2c539ee3eccacfc8984
3
+ metadata.gz: 7470e7b4c5fd9cd721f958813e514054fbd3060dc4f30c3e4a2468a2185481d0
4
+ data.tar.gz: bfa1e661ff97f16b894083ca34772df64a8493a2d710301b89a515ce45918eda
5
5
  SHA512:
6
- metadata.gz: 3fae7c42806dc68767ace883672ae93958736515d36fb52d9a997b622028e0575cb75ad04c2f41bb21653048087e9adbf3bd323004e3b32a33333b3e1a0163d1
7
- data.tar.gz: f1da9d076345d09b58c6b85ac109b7f6500e627c847a82be2510332358025184b816f66893059bed6d1507ef3cc374b30df2381daa70592ddf66e7995d76ab16
6
+ metadata.gz: 54ac5018bf083eab0ea4997624b66d56aeb7721125eac51dd921d8b6043b2660e0eacd3d728a15aa2d154962d61cc175307d141123a41e8129c39b94f8a99ba5
7
+ data.tar.gz: 12e1590da7300b0aa84efd53c96b0a092a250cc674814e1c66b0518fccfb99955a7615b1cb3866f39c25c5fc781176dfb4b76c8238947e532740dc93f98cbb57
@@ -10,3 +10,4 @@ rvm:
10
10
  - 2.4
11
11
  - 2.5
12
12
  - 2.6
13
+ - 2.7
@@ -1,5 +1,26 @@
1
1
  # master (unreleased)
2
2
 
3
+ # 1.3.9
4
+
5
+ * Updated with `tzdata-2020c` ([@panthomakos][])
6
+
7
+ # 1.3.8
8
+
9
+ * Updated with `tzdata-2020b` ([@panthomakos][])
10
+
11
+ # 1.3.7
12
+
13
+ * Updated with `tzdata-2020a` ([@panthomakos][])
14
+
15
+ # 1.3.6
16
+
17
+ * Updated with `tzdata-2019c-1` ([@panthomakos][])
18
+
19
+ # 1.3.5
20
+
21
+ * Remove `@rules` from `Zone`'s `Marshall::dump`. ([@panthomakos][])
22
+ * Updated with `tzdata-2019b-1`. ([@panthomakos][])
23
+
3
24
  # 1.3.4
4
25
 
5
26
  * Updated with `tzdata-2019a-1`. (panthomakos)
@@ -209,3 +230,5 @@
209
230
  # 0.1.2
210
231
 
211
232
  * Fixed `#utc_offset` rule selection. (natemueller)
233
+
234
+ [@panthomakos]: https://github.com/panthomakos
@@ -6,12 +6,16 @@
6
6
 
7
7
  # How to Acquire New TZData Information
8
8
 
9
- * Download `tzdataXYZ.tar.gz` from [IANA](http://www.iana.org/time-zones).
10
- * Extract and use `zic` to load data into `/usr/share/zoneinfo`.
11
- * Run `bundle exec rake parse` to parse files in `right/` directory into
12
- the local `data` directory.
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/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
@@ -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') { LOAD_ITERATIONS.times { load_tz('America/Los_Angeles') } }
16
- x.report('hk') { LOAD_ITERATIONS.times { load_tz('Asia/Hong_Kong') } }
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
- puts 'Calculating LOCAL'
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 calc_utc(timezone)
34
- timezone.local_to_utc(Time.utc(3000, 1, 1))
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 UTC'
28
+ puts 'Calculating LOCAL (#time)'
29
+ bench(10_000, :time)
38
30
 
39
- UTC_ITERATIONS = 10_000
40
- Benchmark.bm do |x|
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)
@@ -1,5 +1,5 @@
1
- -2486679073:LMT:0:732
2
- 630720111:PMT:0:561
1
+ -2486592733:LMT:0:732
2
+ 630633771:PMT:0:561
3
3
  166144161:WET:0:0
4
4
  9417600:WEST:1:3600
5
5
  15033600:WET:0:0
@@ -56,14 +56,14 @@
56
56
  16329600:+01:0:3600
57
57
  3024000:+00:1:0
58
58
  27216000:+01:0:3600
59
- 3024000:+00:1:0
60
- 27820800:+01:0:3600
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
64
64
  27216000:+01:0:3600
65
- 3024000:+00:1:0
66
- 27820800:+01:0:3600
65
+ 3628800:+00:1:0
66
+ 27216000:+01:0:3600
67
67
  3024000:+00:1:0
68
68
  27216000:+01:0:3600
69
69
  3628800:+00:1:0
@@ -72,14 +72,14 @@
72
72
  27820800:+01:0:3600
73
73
  3024000:+00:1:0
74
74
  27216000:+01:0:3600
75
- 3024000:+00:1:0
76
- 27820800:+01:0:3600
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
80
80
  27216000:+01:0:3600
81
- 3024000:+00:1:0
82
- 27820800:+01:0:3600
81
+ 3628800:+00:1:0
82
+ 27216000:+01:0:3600
83
83
  3024000:+00:1:0
84
84
  27216000:+01:0:3600
85
85
  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
+ 3628800:+00:1:0
92
+ 27216000:+01:0:3600
91
93
  3024000:+00:1:0
92
- 27820800:+01:0:3600
93
- 3024000:+00:1:0
94
+ 27216000:+01:0:3600
95
+ 3628800:+00:1:0
94
96
  27216000:+01:0:3600
95
97
  3628800:+00:1:0
96
98
  1:+01:0:3600
@@ -45,14 +45,14 @@
45
45
  16329600:+01:0:3600
46
46
  3024000:+00:1:0
47
47
  27216000:+01:0:3600
48
- 3024000:+00:1:0
49
- 27820800:+01:0:3600
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
53
53
  27216000:+01:0:3600
54
- 3024000:+00:1:0
55
- 27820800:+01:0:3600
54
+ 3628800:+00:1:0
55
+ 27216000:+01:0:3600
56
56
  3024000:+00:1:0
57
57
  27216000:+01:0:3600
58
58
  3628800:+00:1:0
@@ -61,14 +61,14 @@
61
61
  27820800:+01:0:3600
62
62
  3024000:+00:1:0
63
63
  27216000:+01:0:3600
64
- 3024000:+00:1:0
65
- 27820800:+01:0:3600
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
69
69
  27216000:+01:0:3600
70
- 3024000:+00:1:0
71
- 27820800:+01:0:3600
70
+ 3628800:+00:1:0
71
+ 27216000:+01:0:3600
72
72
  3024000:+00:1:0
73
73
  27216000:+01:0:3600
74
74
  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
+ 3628800:+00:1:0
81
+ 27216000:+01:0:3600
80
82
  3024000:+00:1:0
81
- 27820800:+01:0:3600
82
- 3024000:+00:1:0
83
+ 27216000:+01:0:3600
84
+ 3628800:+00:1:0
83
85
  27216000:+01:0:3600
84
86
  3628800:+00:1:0
85
87
  1:+01:0:3600
@@ -89,43 +89,4 @@
89
89
  10882800:-03:1:-10800
90
90
  22381200:-04:0:-14400
91
91
  9068400:-03:1:-10800
92
- 22381200:-04:0:-14400
93
- 9068400:-03:1:-10800
94
- 22381200:-04:0:-14400
95
- 9673200:-03:1:-10800
96
- 22381200:-04:0:-14400
97
- 9068400:-03:1:-10800
98
- 22381200:-04:0:-14400
99
- 9673200:-03:1:-10800
100
- 21776400:-04:0:-14400
101
- 9068400:-03:1:-10800
102
- 22381200:-04:0:-14400
103
- 9068400:-03:1:-10800
104
- 22381200:-04:0:-14400
105
- 9673200:-03:1:-10800
106
- 21776400:-04:0:-14400
107
- 9673200:-03:1:-10800
108
- 22381200:-04:0:-14400
109
- 9068400:-03:1:-10800
110
- 22381200:-04:0:-14400
111
- 9068400:-03:1:-10800
112
- 22381200:-04:0:-14400
113
- 9068400:-03:1:-10800
114
- 22381200:-04:0:-14400
115
- 9068400:-03:1:-10800
116
- 22381200:-04:0:-14400
117
- 9068400:-03:1:-10800
118
- 22986000:-04:0:-14400
119
- 9068400:-03:1:-10800
120
- 22381200:-04:0:-14400
121
- 9673200:-03:1:-10800
122
- 21776400:-04:0:-14400
123
- 9068400:-03:1:-10800
124
- 22381200:-04:0:-14400
125
- 9068400:-03:1:-10800
126
- 22381200:-04:0:-14400
127
- 9673200:-03:1:-10800
128
- 21776400:-04:0:-14400
129
- 9673200:-03:1:-10800
130
- 22381200:-04:0:-14400
131
- 1:-03:1:-10800
92
+ 1:-04:0:-14400
@@ -87,43 +87,4 @@
87
87
  10882800:-03:1:-10800
88
88
  22381200:-04:0:-14400
89
89
  9068400:-03:1:-10800
90
- 22381200:-04:0:-14400
91
- 9068400:-03:1:-10800
92
- 22381200:-04:0:-14400
93
- 9673200:-03:1:-10800
94
- 22381200:-04:0:-14400
95
- 9068400:-03:1:-10800
96
- 22381200:-04:0:-14400
97
- 9673200:-03:1:-10800
98
- 21776400:-04:0:-14400
99
- 9068400:-03:1:-10800
100
- 22381200:-04:0:-14400
101
- 9068400:-03:1:-10800
102
- 22381200:-04:0:-14400
103
- 9673200:-03:1:-10800
104
- 21776400:-04:0:-14400
105
- 9673200:-03:1:-10800
106
- 22381200:-04:0:-14400
107
- 9068400:-03:1:-10800
108
- 22381200:-04:0:-14400
109
- 9068400:-03:1:-10800
110
- 22381200:-04:0:-14400
111
- 9068400:-03:1:-10800
112
- 22381200:-04:0:-14400
113
- 9068400:-03:1:-10800
114
- 22381200:-04:0:-14400
115
- 9068400:-03:1:-10800
116
- 22986000:-04:0:-14400
117
- 9068400:-03:1:-10800
118
- 22381200:-04:0:-14400
119
- 9673200:-03:1:-10800
120
- 21776400:-04:0:-14400
121
- 9068400:-03:1:-10800
122
- 22381200:-04:0:-14400
123
- 9068400:-03:1:-10800
124
- 22381200:-04:0:-14400
125
- 9673200:-03:1:-10800
126
- 21776400:-04:0:-14400
127
- 9673200:-03:1:-10800
128
- 22381200:-04:0:-14400
129
- 1:-03:1:-10800
90
+ 1:-04:0:-14400
@@ -90,41 +90,5 @@
90
90
  10890000:PST:0:-28800
91
91
  20559600:PDT:1:-25200
92
92
  10890000:PST:0:-28800
93
- 20559600:PDT:1:-25200
94
- 11494800:PST:0:-28800
95
- 20559600:PDT:1:-25200
96
- 10890000:PST:0:-28800
97
- 20559600:PDT:1:-25200
98
- 10890000:PST:0:-28800
99
- 20559600:PDT:1:-25200
100
- 10890000:PST:0:-28800
101
- 20559600:PDT:1:-25200
102
- 10890000:PST:0:-28800
103
- 20559600:PDT:1:-25200
104
- 10890000:PST:0:-28800
105
- 20559600:PDT:1:-25200
106
- 11494800:PST:0:-28800
107
- 20559600:PDT:1:-25200
108
- 10890000:PST:0:-28800
109
- 20559600:PDT:1:-25200
110
- 10890000:PST:0:-28800
111
- 20559600:PDT:1:-25200
112
- 10890000:PST:0:-28800
113
- 20559600:PDT:1:-25200
114
- 10890000:PST:0:-28800
115
- 20559600:PDT:1:-25200
116
- 11494800:PST:0:-28800
117
- 20559600:PDT:1:-25200
118
- 10890000:PST:0:-28800
119
- 20559600:PDT:1:-25200
120
- 10890000:PST:0:-28800
121
- 20559600:PDT:1:-25200
122
- 10890000:PST:0:-28800
123
- 20559600:PDT:1:-25200
124
- 10890000:PST:0:-28800
125
- 20559600:PDT:1:-25200
126
- 10890000:PST:0:-28800
127
- 20559600:PDT:1:-25200
128
- 11494800:PST:0:-28800
129
- 20559600:PDT:1:-25200
130
- 1:PST:0:-28800
93
+ 20552400:PDT:1:-25200
94
+ 1:MST:0:-25200
@@ -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
@@ -16,11 +16,7 @@
16
16
  4006800:MPT:1:-21600
17
17
  49597200:MST:0:-25200
18
18
  13302000:MDT:1:-21600
19
- 618109200:MST:0:-25200
20
- 15721200:MDT:1:-21600
21
- 47178000:MST:0:-25200
22
- 15721200:MDT:1:-21600
23
- 79232400:MST:0:-25200
19
+ 775962000:MST:0:-25200
24
20
  15721200:MDT:1:-21600
25
21
  15728400:MST:0:-25200
26
22
  15721200:MDT:1:-21600
@@ -6,13 +6,7 @@
6
6
  703472400:CST:0:-21600
7
7
  110818800:CWT:1:-18000
8
8
  4003200:CPT:1:-18000
9
- 18147600:CST:0:-21600
10
- 13302000:CDT:1:-18000
11
- 207450000:CST:0:-21600
12
- 13302000:CDT:1:-18000
13
- 18147600:CST:0:-21600
14
- 13302000:CDT:1:-18000
15
- 18745200:CST:0:-21600
9
+ 302396400:CST:0:-21600
16
10
  12704400:CDT:1:-18000
17
11
  18752400:CST:0:-21600
18
12
  13302000:CDT:1:-18000
@@ -23,16 +17,19 @@
23
17
  18147600:CST:0:-21600
24
18
  13302000:CDT:1:-18000
25
19
  18147600:CST:0:-21600
26
- 16326000:CDT:1:-18000
27
- 15728400:CST:0:-21600
28
- 12697200:CDT:1:-18000
20
+ 13302000:CDT:1:-18000
29
21
  18752400:CST:0:-21600
30
22
  15721200:CDT:1:-18000
31
23
  15728400:CST:0:-21600
32
24
  15721200:CDT:1:-18000
33
25
  15728400:CST:0:-21600
34
- 157849200:EST:0:-18000
35
- 15721200:EDT:1:-14400
26
+ 15721200:CDT:1:-18000
27
+ 15728400:CST:0:-21600
28
+ 110674800:EST:0:-18000
29
+ 15728400:CST:0:-21600
30
+ 15721200:CDT:1:-18000
31
+ 15728400:CST:0:-21600
32
+ 15717600:EDT:1:-14400
36
33
  15728400:EST:0:-18000
37
34
  15721200:EDT:1:-14400
38
35
  1118278800:EST:0:-18000