timezone 1.3.4 → 1.3.9

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 (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