ziptz 3.0.16 → 3.0.18

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