timezone 1.3.3 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +2 -1
  3. data/CHANGES.markdown +23 -0
  4. data/CONTRIBUTING.markdown +10 -6
  5. data/Rakefile +3 -1
  6. data/data/Africa/Algiers +2 -2
  7. data/data/Africa/Casablanca +12 -10
  8. data/data/Africa/El_Aaiun +12 -10
  9. data/data/America/Campo_Grande +1 -40
  10. data/data/America/Cuiaba +1 -40
  11. data/data/America/Dawson +2 -38
  12. data/data/America/Detroit +5 -1
  13. data/data/America/Edmonton +1 -5
  14. data/data/America/Indiana/Tell_City +9 -12
  15. data/data/America/Kentucky/Louisville +4 -4
  16. data/data/America/Louisville +4 -4
  17. data/data/America/Metlakatla +2 -1
  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 +45 -41
  27. data/data/Asia/Harbin +3 -1
  28. data/data/Asia/Hebron +45 -41
  29. data/data/Asia/Hong_Kong +19 -19
  30. data/data/Asia/Istanbul +22 -36
  31. data/data/Asia/Jerusalem +5 -1
  32. data/data/Asia/Seoul +9 -1
  33. data/data/Asia/Shanghai +3 -1
  34. data/data/Asia/Tel_Aviv +5 -1
  35. data/data/Brazil/East +1 -40
  36. data/data/Canada/Mountain +1 -5
  37. data/data/Canada/Pacific +2 -2
  38. data/data/Canada/Yukon +2 -38
  39. data/data/Etc/UCT +1 -1
  40. data/data/Europe/Brussels +2 -2
  41. data/data/Europe/Budapest +24 -24
  42. data/data/Europe/Istanbul +22 -36
  43. data/data/Europe/Kaliningrad +6 -5
  44. data/data/Europe/Monaco +3 -3
  45. data/data/Europe/Paris +3 -3
  46. data/data/Europe/Rome +2 -2
  47. data/data/Europe/San_Marino +2 -2
  48. data/data/Europe/Vatican +2 -2
  49. data/data/Europe/Vienna +2 -2
  50. data/data/Hongkong +19 -19
  51. data/data/Israel +5 -1
  52. data/data/PRC +3 -1
  53. data/data/Pacific/Fiji +31 -31
  54. data/data/Pacific/Norfolk +42 -3
  55. data/data/ROK +9 -1
  56. data/data/Turkey +22 -36
  57. data/data/UCT +1 -1
  58. data/data/US/Michigan +5 -1
  59. data/lib/timezone/loader.rb +6 -3
  60. data/lib/timezone/parser.rb +28 -14
  61. data/lib/timezone/version.rb +1 -1
  62. data/lib/timezone/zone.rb +17 -16
  63. data/timezone.gemspec +0 -2
  64. metadata +8 -10
  65. data/data/US/Pacific-New +0 -189
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Timezone
4
- VERSION = '1.3.3'.freeze
4
+ VERSION = '1.3.8'.freeze
5
5
  end
@@ -179,10 +179,6 @@ module Timezone
179
179
 
180
180
  private
181
181
 
182
- def private_rules
183
- @rules ||= Loader.load(name)
184
- end
185
-
186
182
  def sanitize(time)
187
183
  time.to_time
188
184
  end
@@ -200,11 +196,15 @@ module Timezone
200
196
 
201
197
  def rule_for_local(local)
202
198
  local = local.to_i
199
+ rules = Loader.load(name)
203
200
 
204
201
  # For each rule, convert the local time into the UTC equivalent for
205
202
  # that rule offset, and then check if the UTC time matches the rule.
206
- index = binary_search(local) { |t, r| match?(t - r[OFFSET_BIT], r) }
207
- match = private_rules[index]
203
+ index =
204
+ binary_search(rules, local) do |t, r|
205
+ match?(t - r[OFFSET_BIT], r)
206
+ end
207
+ match = rules[index]
208
208
 
209
209
  utc = local - match[OFFSET_BIT]
210
210
 
@@ -213,7 +213,7 @@ module Timezone
213
213
  return RuleSet.new(:missing, [match]) if rule_for_utc(utc) != match
214
214
 
215
215
  # If the match is the last rule, then return it.
216
- return RuleSet.new(:single, [match]) if index == private_rules.length - 1
216
+ return RuleSet.new(:single, [match]) if index == rules.length - 1
217
217
 
218
218
  # If the UTC equivalent time falls within the last hour(s) of the time
219
219
  # change which were replayed during a fall-back in time, then return
@@ -234,10 +234,10 @@ module Timezone
234
234
  last_hour =
235
235
  match[SOURCE_BIT] -
236
236
  match[OFFSET_BIT] +
237
- private_rules[index + 1][OFFSET_BIT]
237
+ rules[index + 1][OFFSET_BIT]
238
238
 
239
239
  if utc > last_hour
240
- RuleSet.new(:double, private_rules[index..(index + 1)])
240
+ RuleSet.new(:double, rules[index..(index + 1)])
241
241
  else
242
242
  RuleSet.new(:single, [match])
243
243
  end
@@ -245,27 +245,28 @@ module Timezone
245
245
 
246
246
  def rule_for_utc(time)
247
247
  time = time.to_i
248
+ rules = Loader.load(name)
248
249
 
249
- private_rules[binary_search(time) { |t, r| match?(t, r) }]
250
+ rules[binary_search(rules, time) { |t, r| match?(t, r) }]
250
251
  end
251
252
 
252
253
  # Find the first rule that matches using binary search.
253
- def binary_search(time, from = 0, to = nil, &block)
254
- to = private_rules.length - 1 if to.nil?
254
+ def binary_search(rules, time, from = 0, to = nil, &block)
255
+ to = rules.length - 1 if to.nil?
255
256
 
256
257
  return from if from == to
257
258
 
258
259
  mid = (from + to).div(2)
259
260
 
260
- unless yield(time, private_rules[mid])
261
- return binary_search(time, mid + 1, to, &block)
261
+ unless yield(time, rules[mid])
262
+ return binary_search(rules, time, mid + 1, to, &block)
262
263
  end
263
264
 
264
265
  return mid if mid.zero?
265
266
 
266
- return mid unless yield(time, private_rules[mid - 1])
267
+ return mid unless yield(time, rules[mid - 1])
267
268
 
268
- binary_search(time, from, mid - 1, &block)
269
+ binary_search(rules, time, from, mid - 1, &block)
269
270
  end
270
271
  end
271
272
  end
@@ -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.3
4
+ version: 1.3.8
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: 2019-01-07 00:00:00.000000000 Z
11
+ date: 2020-10-16 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,11 +744,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
744
744
  - !ruby/object:Gem::Version
745
745
  version: '0'
746
746
  requirements: []
747
- rubyforge_project: timezone
748
- rubygems_version: 2.6.11
749
- signing_key:
747
+ rubygems_version: 3.1.2
748
+ signing_key:
750
749
  specification_version: 4
751
- summary: timezone-1.3.3
750
+ summary: timezone-1.3.8
752
751
  test_files:
753
752
  - test/data/Helsinki_rules_without_timestamps.json
754
753
  - test/data/asia
@@ -777,4 +776,3 @@ test_files:
777
776
  - test/timezone/test_mathn_compatibility.rb
778
777
  - test/timezone/test_nil_zone.rb
779
778
  - test/timezone/test_zone.rb
780
- has_rdoc:
@@ -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