zip2tz 0.1.0

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.
@@ -0,0 +1,3 @@
1
+ module Zip2tz
2
+ VERSION = "0.1.0"
3
+ end
data/lib/zip2tz.rb ADDED
@@ -0,0 +1,47 @@
1
+ require "zip2tz/version"
2
+ require "json"
3
+
4
+ module Zip2Tz
5
+ TZ_NAMES = %w(
6
+ America/New_York
7
+ America/Chicago
8
+ America/Denver
9
+ America/Los_Angeles
10
+ America/Kentucky/Louisville
11
+ America/Indiana/Indianapolis
12
+ America/Detroit
13
+ America/Boise
14
+ America/Phoenix
15
+ America/Anchorage
16
+ Pacific/Honolulu
17
+ America/Indiana/Knox
18
+ America/Indiana/Winamac
19
+ America/Indiana/Vevay
20
+ America/Indiana/Marengo
21
+ America/Indiana/Vincennes
22
+ America/Indiana/Tell_City
23
+ America/Indiana/Petersburg
24
+ America/Menominee
25
+ America/Shiprock
26
+ America/Nome
27
+ America/Juneau
28
+ America/Kentucky/Monticello
29
+ America/North_Dakota/Center
30
+ America/Yakutat
31
+ )
32
+
33
+ MAP = JSON.parse(File.read('data/map.json'))
34
+
35
+ def self.lookup(zip)
36
+ zip = zip.to_s
37
+ raise '5 digits required' if zip !~ /\A\d{5}/
38
+ fetch(MAP, *zip.chars.first(5).map(&:to_i))
39
+ end
40
+
41
+ def self.fetch(ary, *idxn)
42
+ return nil if ary.nil?
43
+ return TZ_NAMES[ary] unless ary.is_a?(Array)
44
+ i = idxn.shift
45
+ fetch(ary[i], *idxn)
46
+ end
47
+ end
data/zip2tz.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "zip2tz/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "zip2tz"
8
+ spec.version = Zip2tz::VERSION
9
+ spec.authors = ["Michael Gee", "Nathan Demick"]
10
+ spec.email = ["mgee@covermymeds.com", "ndemick@covermymeds.com"]
11
+
12
+ spec.summary = %q{Lookup time zone by US ZIP code}
13
+ spec.homepage = "https://github.com/covermymeds/zip2tz"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.15"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.0"
26
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zip2tz
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Gee
8
+ - Nathan Demick
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2017-09-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.15'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.15'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.0'
56
+ description:
57
+ email:
58
+ - mgee@covermymeds.com
59
+ - ndemick@covermymeds.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - ".gitignore"
65
+ - ".rspec"
66
+ - ".travis.yml"
67
+ - CODE_OF_CONDUCT.md
68
+ - Gemfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - bin/console
73
+ - bin/setup
74
+ - data/map.json
75
+ - lib/zip2tz.rb
76
+ - lib/zip2tz/version.rb
77
+ - zip2tz.gemspec
78
+ homepage: https://github.com/covermymeds/zip2tz
79
+ licenses:
80
+ - MIT
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 2.6.13
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: Lookup time zone by US ZIP code
102
+ test_files: []