ziptz 3.0.17 → 3.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/data/tz.data +0 -0
  3. data/lib/ziptz.rb +16 -2
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b82917d057946bf70db6f984ff91943c15d6ec1431ab88e42e69eff7bad61581
4
- data.tar.gz: 567412cce76d568b68342e74da46db7cc5c6d8ed777d617949c3dd88acf44cf7
3
+ metadata.gz: 8584f30a48d305cf57165059fdf89bc90ff1169b540b07e4810dd08facf3bb76
4
+ data.tar.gz: 974d31d4c7ab3f17e7e5bf86d875eca5b29f9d44087a09ae9b83c4694fd68945
5
5
  SHA512:
6
- metadata.gz: 25c13ad1068a69a2edb56c1acbb5d975a639b1a557670e8ee4e290109b6e5e96cb4ccc2906539eabee831fef0a1d2d702a4aa6c2af85f8f80ce73859e54b17f2
7
- data.tar.gz: bf30b77b87008cd44521949b59bcdfe8244c535851c9b41bd7deca8828916171e87cad6ad313458e44a5ad96405350b20cfc299d1f4fcabd1ea5adae41affa6b
6
+ metadata.gz: e12dbe849abc336a65894be858be518433b97b9b9ac2622581534b7da9078de2f10fe21270dfed58cee58bb7a0f2003f40f86d9d3e1dcf662cad952dd2e41e20
7
+ data.tar.gz: dd9b487f4a8a868e07c39837732433662879696f12378666d700a69ed561743e47dd5a0bd607b87e381b7abe63ffe6d36ebfba61a7efc848e95fedfd7cf4f0f8
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.17'.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.17
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-07-03 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.14
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