google_maps_geocoder 0.7.10 → 1.0.1

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: 3126baa6f246df340f154bbe7a1ba9ed6df01748309e1c19fe812bd7a6fbb79d
4
- data.tar.gz: dd6e0372f6cb04cdc1cf659cecb2284b0eddac1c1da0a4854915e2ae75510575
3
+ metadata.gz: a1b75a6d688d7ae2c78598419106c233c97b4e3d3670de878f91cdba8c12d920
4
+ data.tar.gz: 3df70e06f88e78962ca11daf667c2e03057de045883534d8c80eb52cc4119edd
5
5
  SHA512:
6
- metadata.gz: 5b6a03c9acb411000e808021112c4d28d83546c9b6cf9bf6eea22c067f33a6206f84dbd1efb4a4111a7e26ab07ffac0c4a2bb7daa570d3ed9fd888a40cadbfd8
7
- data.tar.gz: 1c2125dad69b7b11dec1645f0f9b7dfefd42c19ea2101ae78ea02bb1dc0f30851804f819bc30e9efe7e199b2fd10fe77774df698b7f22e95fa41620ad76f5710
6
+ metadata.gz: 204f47f4a4b6ee052e21c2f8fb16664dfb0cd7ea69e65b52522842cd0514d68c452209ca17e0a639c7f1acdb2bf817346a700eee6a3667457cd7ab4c047379e9
7
+ data.tar.gz: e2d04e07a9d445f9795a7226be2327b0a29921923ca1471b8cdfa74b1436aca4db9a68315198d3dd228c87c62148e1eeb4d5983197bc8bfbff135dd6be4abd19
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,14 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: ivanoblomov
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12
+ polar: # Replace with a single Polar username
13
+ buy_me_a_coffee: oblomov
14
+ custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -9,3 +9,7 @@ updates:
9
9
  directory: "/" # Location of package manifests
10
10
  schedule:
11
11
  interval: "daily"
12
+ - package-ecosystem: "github-actions"
13
+ directory: "/"
14
+ schedule:
15
+ interval: "weekly"
@@ -12,10 +12,10 @@ jobs:
12
12
  name: Ruby ${{ matrix.ruby-version }}
13
13
  strategy:
14
14
  matrix:
15
- ruby-version: [2.5, 2.6, 2.7, '3.0']
15
+ ruby-version: ['3.0', 3.1, 3.2, 3.3]
16
16
  steps:
17
17
  - name: Checkout code
18
- uses: actions/checkout@v2
18
+ uses: actions/checkout@v4
19
19
  - name: Set up Ruby ${{ matrix.ruby-version }}
20
20
  uses: ruby/setup-ruby@v1
21
21
  with:
data/.rubocop.yml ADDED
@@ -0,0 +1,7 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rake
4
+ - rubocop-rspec
5
+
6
+ AllCops:
7
+ NewCops: enable
data/Gemfile CHANGED
@@ -5,10 +5,11 @@ gemspec
5
5
 
6
6
  gem 'inch', '~> 0.8'
7
7
  gem 'pry', '~> 0.14.1'
8
- gem 'rake', ['>= 12.3.3', '~> 13.0']
8
+ gem 'rake', '~> 13'
9
9
  gem 'rspec', '~> 3'
10
- gem 'rubocop', '< 1.29'
11
- gem 'rubocop-rake', '~> 0'
12
- gem 'rubocop-rspec', '~> 2'
10
+ gem 'rubocop', '< 1.68'
11
+ gem 'rubocop-performance', require: false
12
+ gem 'rubocop-rake', require: false
13
+ gem 'rubocop-rspec', require: false
13
14
  gem 'simplecov', '~> 0.18'
14
15
  gem 'simplecov-lcov', '~> 0.8'
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2022 Roderick Monje
1
+ Copyright (c) 2011-2024 Roderick Monje
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
@@ -108,10 +108,6 @@ Complete RDoc documentation is available at [RubyDoc.info](https://www.rubydoc.i
108
108
 
109
109
  ## [Contributing to GoogleMapsGeocoder](.github/CONTRIBUTING.md)
110
110
 
111
- ## Cheers!
112
-
113
- <a href="https://www.buymeacoffee.com/oblomov" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-green.png" alt="Buy Me A Coffee" height="41" width="174" ></a>
114
-
115
111
  ## Copyright
116
112
 
117
- Copyright © 2011-2022 Roderick Monje. See [LICENSE.txt](LICENSE.txt) for further details.
113
+ Copyright © 2011-2024 Roderick Monje. See [LICENSE.txt](LICENSE.txt) for further details.
data/SECURITY.md CHANGED
@@ -6,8 +6,8 @@
6
6
 
7
7
  | Version | Supported |
8
8
  | ------- | ------------------ |
9
- | 0.7.10 | :white_check_mark: |
10
- | < 0.7.10 | :x: |
9
+ | 1.0.1 | :white_check_mark: |
10
+ | < 1.0.1 | :x: |
11
11
 
12
12
  ## Reporting a Vulnerability
13
13
 
@@ -1,25 +1,26 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- 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
- 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
- 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
- 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
- BD7cLPkeNfPWp8ohGVXL3988lRBYHwI/LRhxKXncmwmjYFWjuyR1m3e+EgmpBO3e
7
- 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
- Y1fpstOJtVnUjoeT8BRQAqV0WZuzFhgj74oSoHP/ETEd7Uzw/ST/kKgtNGcxoIYu
9
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- LuVPsP7/R6VlrI8WbtPU1oSfM+rmdpUZzDcvmtvy1S+tPfFWalo8tSXPg0gE3Nis
20
- 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
- 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
- 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
- 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
- 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
25
26
  -----END CERTIFICATE-----
@@ -6,18 +6,19 @@ Gem::Specification.new do |s|
6
6
  s.version = GoogleMapsGeocoder::VERSION.dup
7
7
  s.licenses = ['MIT']
8
8
  s.summary = 'A simple PORO wrapper for geocoding with Google Maps.'
9
- s.description = 'Geocode a location without worrying about parsing Google '\
10
- "Maps' response. GoogleMapsGeocoder wraps it in a plain-old "\
9
+ s.description = 'Geocode a location without worrying about parsing Google ' \
10
+ "Maps' response. GoogleMapsGeocoder wraps it in a plain-old " \
11
11
  'Ruby object.'
12
12
  s.homepage = 'https://github.com/FoveaCentral/google_maps_geocoder'
13
13
  s.authors = ['Roderick Monje']
14
14
  s.cert_chain = ['certs/ivanoblomov.pem']
15
15
  s.email = 'rod@foveacentral.com'
16
- s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $PROGRAM_NAME =~ /gem\z/
16
+ s.signing_key = File.expand_path('~/.ssh/gem-private_key.pem') if $PROGRAM_NAME.end_with?('gem')
17
17
 
18
- s.add_runtime_dependency 'rack', '>= 2.1.4', '< 3.1.0'
18
+ s.add_dependency 'rack', '>= 2.1.4', '< 3.2.0'
19
19
 
20
20
  s.files = `git ls-files`.split "\n"
21
21
  s.require_paths = ['lib']
22
- s.required_ruby_version = '>= 2.5'
22
+ s.required_ruby_version = '>= 3.0'
23
+ s.metadata['rubygems_mfa_required'] = 'true'
23
24
  end
@@ -128,15 +128,15 @@ class GoogleMapsGeocoder
128
128
  if (message = @json['error_message'])
129
129
  Logger.new($stderr).error(message)
130
130
  end
131
- super @json['status']
131
+ super(@json)
132
132
  end
133
133
  end
134
134
 
135
135
  private
136
136
 
137
137
  def google_maps_request(address)
138
- "#{GOOGLE_MAPS_API}?address=#{Rack::Utils.escape address}"\
139
- "&key=#{ENV['GOOGLE_MAPS_API_KEY']}"
138
+ "#{GOOGLE_MAPS_API}?address=#{Rack::Utils.escape address}" \
139
+ "&key=#{ENV.fetch('GOOGLE_MAPS_API_KEY', nil)}"
140
140
  end
141
141
 
142
142
  def google_maps_response(address)
@@ -181,8 +181,8 @@ class GoogleMapsGeocoder
181
181
  end
182
182
 
183
183
  def parse_formatted_street_address
184
- "#{parse_address_component_type('street_number')} "\
185
- "#{parse_address_component_type('route')}"
184
+ "#{parse_address_component_type('street_number')} " \
185
+ "#{parse_address_component_type('route')}"
186
186
  end
187
187
 
188
188
  def parse_lat
@@ -207,7 +207,7 @@ class GoogleMapsGeocoder
207
207
 
208
208
  def set_attributes_from_json
209
209
  ALL_ADDRESS_SEGMENTS.each do |segment|
210
- instance_variable_set :"@#{segment}", send("parse_#{segment}")
210
+ instance_variable_set :"@#{segment}", send(:"parse_#{segment}")
211
211
  end
212
212
  end
213
213
  end
@@ -3,5 +3,5 @@
3
3
  # A simple PORO wrapper for geocoding with Google Maps.
4
4
  class GoogleMapsGeocoder
5
5
  # This gem's version.
6
- VERSION = '0.7.10' unless defined?(GoogleMapsGeocoder::VERSION)
6
+ VERSION = '1.0.1' unless defined?(GoogleMapsGeocoder::VERSION)
7
7
  end
@@ -6,70 +6,114 @@ require "#{File.dirname(__FILE__)}/../spec_helper"
6
6
  # rubocop:disable Metrics/BlockLength
7
7
  RSpec.describe GoogleMapsGeocoder do
8
8
  describe '#new' do
9
- context 'with "White House"' do
10
- subject(:geocoder) do
11
- GoogleMapsGeocoder.new('White House')
12
- rescue SocketError
13
- pending 'waiting for a network connection'
14
- rescue GoogleMapsGeocoder::GeocodingError
15
- pending 'waiting for query limit to pass'
16
- end
9
+ context 'when API key is valid' do
10
+ # rubocop:disable RSpec/NestedGroups
11
+ context 'with "White House"' do
12
+ subject(:geocoder) do
13
+ described_class.new('White House')
14
+ rescue SocketError
15
+ pending 'waiting for a network connection'
16
+ rescue GoogleMapsGeocoder::GeocodingError => e
17
+ raise if e.json['status'] == 'REQUEST_DENIED'
18
+
19
+ pending 'waiting for query limit to pass'
20
+ end
17
21
 
18
- it { should be_partial_match }
19
- it { should_not be_exact_match }
22
+ it { is_expected.to be_partial_match }
23
+ it { is_expected.not_to be_exact_match }
20
24
 
21
- context 'address' do
22
- it do
23
- expect(geocoder.formatted_street_address)
24
- .to eq '1600 Pennsylvania Avenue Northwest'
25
+ describe '#formatted_street_address' do
26
+ it { expect(geocoder.formatted_street_address).to eq '1600 Pennsylvania Avenue Northwest' }
25
27
  end
26
- it { expect(geocoder.city).to eq 'Washington' }
27
- it { expect(geocoder.state_long_name).to eq 'District of Columbia' }
28
- it { expect(geocoder.state_short_name).to eq 'DC' }
29
- it { expect(geocoder.postal_code).to eq '20500' }
30
- it { expect(geocoder.country_short_name).to eq 'US' }
31
- it { expect(geocoder.country_long_name).to eq 'United States' }
32
- it do
33
- expect(geocoder.formatted_address)
34
- .to match(/1600 Pennsylvania Avenue NW, Washington, DC 20500, USA/)
28
+
29
+ describe '#city' do
30
+ it { expect(geocoder.city).to eq 'Washington' }
35
31
  end
36
- end
37
32
 
38
- context 'coordinates' do
39
- it { expect(geocoder.lat).to be_within(0.005).of(38.8976633) }
40
- it { expect(geocoder.lng).to be_within(0.005).of(-77.0365739) }
41
- end
33
+ describe '#state_long_name' do
34
+ it { expect(geocoder.state_long_name).to eq 'District of Columbia' }
35
+ end
36
+
37
+ describe '#state_short_name' do
38
+ it { expect(geocoder.state_short_name).to eq 'DC' }
39
+ end
40
+
41
+ describe '#postal_code' do
42
+ it { expect(geocoder.postal_code).to eq '20500' }
43
+ end
44
+
45
+ describe '#country_short_name' do
46
+ it { expect(geocoder.country_short_name).to eq 'US' }
47
+ end
48
+
49
+ describe '#country_long_name' do
50
+ it { expect(geocoder.country_long_name).to eq 'United States' }
51
+ end
52
+
53
+ describe '#formatted_address' do
54
+ it { expect(geocoder.formatted_address).to match(/1600 Pennsylvania Avenue NW, Washington, DC 20500, USA/) }
55
+ end
56
+
57
+ describe '#lat' do
58
+ it { expect(geocoder.lat).to be_within(0.005).of(38.8976633) }
59
+ end
42
60
 
43
- context 'Geocoder API' do
44
- it { expect(geocoder.address).to eq subject.formatted_address }
45
- it { expect(geocoder.coordinates).to eq [subject.lat, subject.lng] }
46
- it { expect(geocoder.country).to eq subject.country_long_name }
47
- it { expect(geocoder.country_code).to eq subject.country_short_name }
48
- it { expect(geocoder.latitude).to eq subject.lat }
49
- it { expect(geocoder.longitude).to eq subject.lng }
50
- it { expect(geocoder.state).to eq subject.state_long_name }
51
- it { expect(geocoder.state_code).to eq subject.state_short_name }
61
+ describe '#lng' do
62
+ it { expect(geocoder.lng).to be_within(0.005).of(-77.0365739) }
63
+ end
64
+
65
+ context 'when using Geocoder API' do
66
+ describe '#address' do
67
+ it { expect(geocoder.address).to eq geocoder.formatted_address }
68
+ end
69
+
70
+ describe '#coordinates' do
71
+ it { expect(geocoder.coordinates).to eq [geocoder.lat, geocoder.lng] }
72
+ end
73
+
74
+ describe '#country' do
75
+ it { expect(geocoder.country).to eq geocoder.country_long_name }
76
+ end
77
+
78
+ describe '#country_code' do
79
+ it { expect(geocoder.country_code).to eq geocoder.country_short_name }
80
+ end
81
+
82
+ describe '#latitude' do
83
+ it { expect(geocoder.latitude).to eq geocoder.lat }
84
+ end
85
+
86
+ describe '#longitude' do
87
+ it { expect(geocoder.longitude).to eq geocoder.lng }
88
+ end
89
+
90
+ describe '#state' do
91
+ it { expect(geocoder.state).to eq geocoder.state_long_name }
92
+ end
93
+
94
+ describe '#state_code' do
95
+ it { expect(geocoder.state_code).to eq geocoder.state_short_name }
96
+ end
97
+ end
52
98
  end
99
+ # rubocop:enable RSpec/NestedGroups
53
100
  end
54
101
 
55
102
  context 'when API key is invalid' do
56
- around do |example|
57
- original_key = ENV['GOOGLE_MAPS_API_KEY']
58
- ENV['GOOGLE_MAPS_API_KEY'] = 'invalid_key'
59
- example.run
60
- ENV['GOOGLE_MAPS_API_KEY'] = original_key
61
- end
62
-
63
103
  subject(:geocoder) do
64
- GoogleMapsGeocoder.new('nowhere that comes to mind')
104
+ described_class.new('nowhere that comes to mind')
65
105
  rescue SocketError
66
106
  pending 'waiting for a network connection'
67
107
  end
68
108
 
69
- it do
70
- expect { geocoder }.to raise_error GoogleMapsGeocoder::GeocodingError,
71
- 'REQUEST_DENIED'
109
+ around do |example|
110
+ original_key = ENV.fetch('GOOGLE_MAPS_API_KEY', nil)
111
+ ENV['GOOGLE_MAPS_API_KEY'] = 'invalid_key'
112
+ example.run
113
+ ENV['GOOGLE_MAPS_API_KEY'] = original_key
72
114
  end
115
+
116
+ it { expect { geocoder }.to raise_error GoogleMapsGeocoder::GeocodingError }
73
117
  end
74
118
  end
75
119
  end
data/spec/spec_helper.rb CHANGED
@@ -16,12 +16,12 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
16
16
  require 'google_maps_geocoder/google_maps_geocoder'
17
17
  # silence output
18
18
  RSpec.configure do |config|
19
- config.before(:example) do
19
+ config.before do
20
20
  quiet_logger = Logger.new(IO::NULL)
21
21
  allow(Logger).to receive(:new).and_return(quiet_logger)
22
22
  end
23
23
 
24
- config.after(:example) do
24
+ config.after do
25
25
  allow(Logger).to receive(:new).and_call_original
26
26
  end
27
27
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_maps_geocoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.10
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roderick Monje
@@ -10,31 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
36
37
  -----END CERTIFICATE-----
37
- date: 2022-09-27 00:00:00.000000000 Z
38
+ date: 2024-10-31 00:00:00.000000000 Z
38
39
  dependencies:
39
40
  - !ruby/object:Gem::Dependency
40
41
  name: rack
@@ -45,7 +46,7 @@ dependencies:
45
46
  version: 2.1.4
46
47
  - - "<"
47
48
  - !ruby/object:Gem::Version
48
- version: 3.1.0
49
+ version: 3.2.0
49
50
  type: :runtime
50
51
  prerelease: false
51
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -55,7 +56,7 @@ dependencies:
55
56
  version: 2.1.4
56
57
  - - "<"
57
58
  - !ruby/object:Gem::Version
58
- version: 3.1.0
59
+ version: 3.2.0
59
60
  description: Geocode a location without worrying about parsing Google Maps' response.
60
61
  GoogleMapsGeocoder wraps it in a plain-old Ruby object.
61
62
  email: rod@foveacentral.com
@@ -65,6 +66,7 @@ extra_rdoc_files: []
65
66
  files:
66
67
  - ".document"
67
68
  - ".github/CONTRIBUTING.md"
69
+ - ".github/FUNDING.yml"
68
70
  - ".github/ISSUE_TEMPLATE/bug-report.md"
69
71
  - ".github/ISSUE_TEMPLATE/feature_request.md"
70
72
  - ".github/ISSUE_TEMPLATE/task.md"
@@ -72,6 +74,7 @@ files:
72
74
  - ".github/dependabot.yml"
73
75
  - ".github/workflows/test.yml"
74
76
  - ".gitignore"
77
+ - ".rubocop.yml"
75
78
  - ".simplecov"
76
79
  - CODE_OF_CONDUCT.md
77
80
  - Gemfile
@@ -88,7 +91,8 @@ files:
88
91
  homepage: https://github.com/FoveaCentral/google_maps_geocoder
89
92
  licenses:
90
93
  - MIT
91
- metadata: {}
94
+ metadata:
95
+ rubygems_mfa_required: 'true'
92
96
  post_install_message:
93
97
  rdoc_options: []
94
98
  require_paths:
@@ -97,14 +101,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
101
  requirements:
98
102
  - - ">="
99
103
  - !ruby/object:Gem::Version
100
- version: '2.5'
104
+ version: '3.0'
101
105
  required_rubygems_version: !ruby/object:Gem::Requirement
102
106
  requirements:
103
107
  - - ">="
104
108
  - !ruby/object:Gem::Version
105
109
  version: '0'
106
110
  requirements: []
107
- rubygems_version: 3.1.6
111
+ rubygems_version: 3.5.6
108
112
  signing_key:
109
113
  specification_version: 4
110
114
  summary: A simple PORO wrapper for geocoding with Google Maps.
metadata.gz.sig CHANGED
Binary file