ziptz 4.0.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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