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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/data/tz.data +0 -0
- data/lib/ziptz.rb +16 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8584f30a48d305cf57165059fdf89bc90ff1169b540b07e4810dd08facf3bb76
|
4
|
+
data.tar.gz: 974d31d4c7ab3f17e7e5bf86d875eca5b29f9d44087a09ae9b83c4694fd68945
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e12dbe849abc336a65894be858be518433b97b9b9ac2622581534b7da9078de2f10fe21270dfed58cee58bb7a0f2003f40f86d9d3e1dcf662cad952dd2e41e20
|
7
|
+
data.tar.gz: dd9b487f4a8a868e07c39837732433662879696f12378666d700a69ed561743e47dd5a0bd607b87e381b7abe63ffe6d36ebfba61a7efc848e95fedfd7cf4f0f8
|
data/README.md
CHANGED
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.
|
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
|
-
|
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.
|
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-
|
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.
|
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
|