ziptz 3.0.16 → 3.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/data/tz.data +0 -0
  4. data/lib/ziptz.rb +16 -2
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7b5051aeedbe24e87177cbb254d033f2207af1210d8eeca7dc80b0eee8373d6b
4
- data.tar.gz: cd88b03ebeaf71a93d7a1d88508a5f16413ac292bc10390a1d6373a4d5eea08e
3
+ metadata.gz: 8584f30a48d305cf57165059fdf89bc90ff1169b540b07e4810dd08facf3bb76
4
+ data.tar.gz: 974d31d4c7ab3f17e7e5bf86d875eca5b29f9d44087a09ae9b83c4694fd68945
5
5
  SHA512:
6
- metadata.gz: d3a51bb8ce5b700f59ed697d7ab93583800c9b2e038a988303fcaa097c123ba14e60845dd0a4d81a2e61afff1d6321f4f3a0d1ec8dbd129907c3546199412bdc
7
- data.tar.gz: 533c93935b8f1d87f91434190a4bb8104d440d7db72759beda5ba1f67e85ee19d463860c670796968b16b75c1234e7a9c3252ec117a72082b53b4146bed6cca3
6
+ metadata.gz: e12dbe849abc336a65894be858be518433b97b9b9ac2622581534b7da9078de2f10fe21270dfed58cee58bb7a0f2003f40f86d9d3e1dcf662cad952dd2e41e20
7
+ data.tar.gz: dd9b487f4a8a868e07c39837732433662879696f12378666d700a69ed561743e47dd5a0bd607b87e381b7abe63ffe6d36ebfba61a7efc848e95fedfd7cf4f0f8
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Get time zone, daylight saving time, and base offset for any US ZIP code.
8
8
 
9
- <i>ZIP codes are up to date as of <b>June 2023</b>.</i>
9
+ <i>ZIP codes are up to date as of <b>July 2023</b>.</i>
10
10
 
11
11
  ## Compatibility
12
12
 
data/data/tz.data CHANGED
Binary file
data/lib/ziptz.rb CHANGED
@@ -2,7 +2,7 @@ require 'yaml'
2
2
  require 'zlib'
3
3
 
4
4
  class Ziptz
5
- VERSION = '3.0.16'.freeze
5
+ VERSION = '3.0.18'.freeze
6
6
 
7
7
  def self.instance
8
8
  @instance ||= new
@@ -44,12 +44,19 @@ class Ziptz
44
44
  @tzm ||= load_tzm_data
45
45
  end
46
46
 
47
+ def lazy_tz
48
+ @lazy_tz ||= lazy_load_tz_data
49
+ end
50
+
47
51
  def tz
48
52
  @tz ||= load_tz_data
49
53
  end
50
54
 
51
55
  def time_zone_info(zip)
52
- tz[zip.to_s.slice(0, 5)]
56
+ if (data = lazy_tz[zip.to_s.slice(0, 5)])
57
+ _, tz, dst = data.strip.split('|')
58
+ {tz: tz, dst: dst == '1'}
59
+ end
53
60
  end
54
61
 
55
62
  def tzm_data_path
@@ -60,6 +67,13 @@ class Ziptz
60
67
  File.join(File.dirname(__FILE__), '..', 'data', 'tz.data')
61
68
  end
62
69
 
70
+ def lazy_load_tz_data
71
+ uncompressed = Zlib::Inflate.inflate(File.read(tz_data_path, encoding: 'ASCII-8BIT'))
72
+ uncompressed.each_line.with_object({}) do |line, data|
73
+ data[line.slice(0, 5)] = line
74
+ end
75
+ end
76
+
63
77
  def load_tz_data
64
78
  uncompressed = Zlib::Inflate.inflate(File.read(tz_data_path, encoding: 'ASCII-8BIT'))
65
79
  uncompressed.each_line.with_object({}) do |line, data|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ziptz
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.16
4
+ version: 3.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-13 00:00:00.000000000 Z
11
+ date: 2023-10-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Get timezone info for all 5-digit US zip codes
14
14
  email: keithm@infused.org
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  requirements: []
50
- rubygems_version: 3.4.13
50
+ rubygems_version: 3.4.10
51
51
  signing_key:
52
52
  specification_version: 4
53
53
  summary: TimeZone info for any 5-digit US zip code