ziptz 4.0.1 → 5.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d3cd4dde0a56133d9db0798f044077335652c0dfcf16dbbbf4a09f1a47230bc
4
- data.tar.gz: 20d18826c8007c4d15b418902cc467bb93e29eddf565f3a1776623dedb481fb7
3
+ metadata.gz: 9f1ff0d267b6ba06ee70a99186cd14f8684744f4fd243f56d9b7150117f26cc0
4
+ data.tar.gz: 407d339f02d80651adc97150bccb8e85cac844f948f3e9e7c2d348e110dfc20c
5
5
  SHA512:
6
- metadata.gz: b23fb49a49a372b949e6fe31af147999f241a706744654613c576d00c2e9c4f1d65bf50c9d0224089479a6361096a6c77bcd1b54ff21d341365606bcd9db0f95
7
- data.tar.gz: aff97067607af0b0d3aff3313761cea8e38dbabf89545eeae0b45da826e7aa794dff58245353ec8885d8dfb823242eb99d27196ffe326bf149ef2c6456060d25
6
+ metadata.gz: 4724ab134a22f108612b724339343a16f78bfcdad477f378bf6e30154cdb9e2470a6f95964dbabbbfa874253df215a88e93adba6a0e0bcb8a4bc4f6b88eb2e68
7
+ data.tar.gz: 69242029d2511543b28068cc0045f4de2ee00b00458a834dbcd810b736d75090f8c1fa74e8156f124a4857059b93d4f6ba15174e75d2340aa458062821a089df
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015-2023 Keith Morrison <keithm@infused.org>
1
+ Copyright (c) 2015-2024 Keith Morrison <keithm@infused.org>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -12,7 +12,7 @@ Get time zone, daylight saving time, and base offset for any US ZIP code.
12
12
 
13
13
  Ziptz is tested to work with the following versions of Ruby:
14
14
 
15
- * Ruby 2.3.x, 2.4.x, 2.5.x, 2.6.x, 2.7.x, 3.x
15
+ * Ruby 3.1.x, 3.2.x, 3.3.x
16
16
 
17
17
  ## Installation
18
18
 
@@ -160,7 +160,7 @@ Time zone names now reflect standard tz-database names.
160
160
 
161
161
  ## License
162
162
 
163
- Copyright (c) 2015-2023 Keith Morrison <<keithm@infused.org>>
163
+ Copyright (c) 2015-2024 Keith Morrison <<keithm@infused.org>>
164
164
 
165
165
  Permission is hereby granted, free of charge, to any person
166
166
  obtaining a copy of this software and associated documentation
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Ziptz
2
- VERSION = '4.0.1'.freeze
2
+ VERSION = '5.0.0'.freeze
3
3
  end
data/lib/ziptz.rb CHANGED
@@ -46,6 +46,8 @@ class Ziptz
46
46
  protected
47
47
 
48
48
  def time_zone_info(zip)
49
+ return unless zip
50
+
49
51
  db.get_first_row('select * from zip_codes where zip_code = ? limit 1', zip[0, 5])
50
52
  end
51
53
 
data/spec/ziptz_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Ziptz do
4
- let(:ziptz) { Ziptz.new }
4
+ let(:ziptz) { described_class.new }
5
5
 
6
6
  describe 'when inspected' do
7
7
  it 'does not show internal instance variables' do
@@ -27,39 +27,35 @@ RSpec.describe Ziptz do
27
27
  expect(ziptz.time_zone_name('xyz')).to be_nil
28
28
  end
29
29
  end
30
- end
31
-
32
- describe '#time_zone_name' do
33
- context 'when given a 5-digit zipcode' do
34
- it 'returns the time zone number' do
35
- expect(ziptz.time_zone_name('97034')).to eq 'America/Los_Angeles'
36
- end
37
- end
38
-
39
- context 'when given a 9-digit zipcode' do
40
- it 'returns the time zone number' do
41
- expect(ziptz.time_zone_name('97034-1234')).to eq 'America/Los_Angeles'
42
- end
43
- end
44
30
 
45
- context 'when there is no matching zipcode' do
31
+ context 'when nil is passed' do
46
32
  it 'returns nil' do
47
- expect(ziptz.time_zone_name('xyz')).to be_nil
33
+ expect(ziptz.time_zone_name(nil)).to be_nil
48
34
  end
49
35
  end
50
36
  end
51
37
 
52
38
  describe '#time_zone_uses_dst?' do
53
- context 'when given a 5-digit zipcode' do
54
- it 'returns a boolean' do
39
+ context 'when given a valid 5-digit zipcode' do
40
+ it 'returns true' do
55
41
  expect(ziptz.time_zone_uses_dst?('97034')).to eq true
42
+ end
43
+ end
44
+
45
+ context 'when given an invalid 5-digit zipcode' do
46
+ it 'returns false' do
56
47
  expect(ziptz.time_zone_uses_dst?('85004')).to eq false
57
48
  end
58
49
  end
59
50
 
60
- context 'when given a 9-digit zipcode' do
61
- it 'returns a boolean' do
51
+ context 'when given a valid 9-digit zipcode' do
52
+ it 'returns a true' do
62
53
  expect(ziptz.time_zone_uses_dst?('97034-1234')).to eq true
54
+ end
55
+ end
56
+
57
+ context 'when given an invalid 9-digit zipcode' do
58
+ it 'returns false' do
63
59
  expect(ziptz.time_zone_uses_dst?('85004-1234')).to eq false
64
60
  end
65
61
  end
@@ -74,13 +70,13 @@ RSpec.describe Ziptz do
74
70
  describe '#time_zone_offset' do
75
71
  context 'when given a 5-digit zipcode' do
76
72
  it 'returns the time zone number' do
77
- expect(ziptz.time_zone_offset('97034')).to eq(-28800)
73
+ expect(ziptz.time_zone_offset('97034')).to eq(-28_800)
78
74
  end
79
75
  end
80
76
 
81
77
  context 'when given a 9-digit zipcode' do
82
78
  it 'returns the time zone number' do
83
- expect(ziptz.time_zone_offset('97034-1234')).to eq(-28800)
79
+ expect(ziptz.time_zone_offset('97034-1234')).to eq(-28_800)
84
80
  end
85
81
  end
86
82
 
@@ -110,13 +106,13 @@ RSpec.describe Ziptz do
110
106
  describe '#instance' do
111
107
  context 'when given a 5 digit zip code' do
112
108
  it 'matches the behavior of Ziptz.new' do
113
- expect(Ziptz.instance.time_zone_name('97034')).to eq ziptz.time_zone_name('97034')
109
+ expect(described_class.instance.time_zone_name('97034')).to eq ziptz.time_zone_name('97034')
114
110
  end
115
111
  end
116
112
 
117
113
  context 'when called twice' do
118
114
  it 'returns identical instances' do
119
- expect(Ziptz.instance.object_id).to eq Ziptz.instance.object_id
115
+ expect(described_class.instance.object_id).to eq described_class.instance.object_id
120
116
  end
121
117
  end
122
118
  end
data/ziptz.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.extra_rdoc_files = ['README.md', 'LICENSE']
18
18
  s.files = Dir['README.md', 'LICENSE', '{data,lib,spec}/**/*', 'ziptz.gemspec']
19
19
  s.require_paths = ['lib']
20
- s.required_ruby_version = '>= 2.0.0'
20
+ s.required_ruby_version = '>= 3.1.0'
21
21
  s.metadata['rubygems_mfa_required'] = 'true'
22
22
  s.add_dependency 'sqlite3', '~> 1.6'
23
23
  end
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: 4.0.1
4
+ version: 5.0.0
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-12-04 00:00:00.000000000 Z
11
+ date: 2023-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sqlite3
@@ -56,14 +56,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 2.0.0
59
+ version: 3.1.0
60
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  requirements: []
66
- rubygems_version: 3.4.21
66
+ rubygems_version: 3.5.3
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: TimeZone info for any 5-digit US zip code