opencage-geocoder 3.2.1 → 3.2.3

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: 96d9f2c544204963c02f74d454922921c79fd21cc232ab77e341e42cf0bb5c8b
4
- data.tar.gz: 7adaee50ad5b0871535a48943865dcd99ecbacdb307f5162c10851bfe7af151a
3
+ metadata.gz: 1016936b8f076dec6b73f93da919989aa11e9368c5faf7a05e622d0635964b90
4
+ data.tar.gz: 7455a9c6cc3d465b677110338163416c41d1e01eaad0f438bb3ac136c5331401
5
5
  SHA512:
6
- metadata.gz: dae3b09e4f51739aa041cd6331e976ae641cacceec47abd96da71c86060092cf70dc73a5a291d8c4dff86b5085b12b0e577a11934f2535691e176b1fed38fb3d
7
- data.tar.gz: c5719516546d42fb927f1b26d90f721cc12c01f4894a98c7ff2549d627066a03d3b98ea091f4861fbd65ae988af1550903a0a4fda000200e2fe4f0ffa5212884
6
+ metadata.gz: e1777c2b3e8e2c003d28ed9b3828b26b00f1c818da194e9f44357adba0ab7ef44cd5825883755e68d1e795f869bcbd5a73fef9ef3ec63740526e281d9d4bbbab
7
+ data.tar.gz: cc90bf3ad237f10131aee18db89db986c054aa3d36c072a94f3051147319b7f8ca381606f339164cb358ee80ff7d262d58ee1c77441bee566006cad5fb880c37
@@ -1,6 +1,7 @@
1
1
  require 'opencage/geocoder/location'
2
2
  require 'opencage/geocoder/request'
3
3
  require 'opencage/error'
4
+ require 'opencage/version'
4
5
  require 'open-uri'
5
6
  require 'json'
6
7
 
@@ -8,12 +9,23 @@ module OpenCage
8
9
  class Geocoder
9
10
  def initialize(default_options = {})
10
11
  @api_key = default_options.fetch(:api_key) { raise_error('401 Missing API key') }
12
+ @user_agent = default_options.fetch(:user_agent) { "opencage-ruby/#{OpenCage::VERSION} Ruby/#{RUBY_VERSION}" }
11
13
  end
12
14
 
13
15
  def geocode(location, options = {})
14
16
  request = Request.new(@api_key, location, options)
15
17
 
16
- results = fetch(request.to_s)
18
+ begin
19
+ results = fetch(request.to_s)
20
+ rescue Errno::ECONNREFUSED
21
+ raise_error("408 Failed to open TCP connection to API #{request}")
22
+ rescue Errno::ECONNRESET
23
+ # Connection reset by peer - SSL_connect
24
+ raise_error("408 Failed to open SSL connection to API #{request}")
25
+ rescue Net::OpenTimeout
26
+ raise_error("408 Timeout connecting to API #{request}")
27
+ end
28
+
17
29
  return [] unless results
18
30
 
19
31
  results.map { |r| Location.new(r) }
@@ -33,11 +45,15 @@ module OpenCage
33
45
  private
34
46
 
35
47
  def fetch(url)
36
- JSON.parse(URI(url).open.read)['results']
48
+ JSON.parse(URI(url).open(headers).read)['results']
37
49
  rescue OpenURI::HTTPError => e
38
50
  raise_error(e)
39
51
  end
40
52
 
53
+ def headers
54
+ { 'User-Agent' => @user_agent }
55
+ end
56
+
41
57
  def raise_error(error)
42
58
  code = String(error).slice(0, 3)
43
59
  klass = OpenCage::Error::ERRORS[code.to_i]
@@ -1,3 +1,3 @@
1
1
  module OpenCage
2
- VERSION = '3.2.1'.freeze
2
+ VERSION = '3.2.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opencage-geocoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 3.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Scully
8
8
  - Marc Tobias
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2025-01-22 00:00:00.000000000 Z
12
+ date: 2025-02-06 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: A client for the OpenCage geocoding API - https://opencagedata.com/
14
15
  email: support@opencagedata.com
@@ -27,6 +28,7 @@ licenses:
27
28
  - MIT
28
29
  metadata:
29
30
  source_code_uri: https://github.com/opencagedata/ruby-opencage-geocoder
31
+ post_install_message:
30
32
  rdoc_options: []
31
33
  require_paths:
32
34
  - lib
@@ -41,7 +43,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
43
  - !ruby/object:Gem::Version
42
44
  version: '0'
43
45
  requirements: []
44
- rubygems_version: 3.6.2
46
+ rubygems_version: 3.3.27
47
+ signing_key:
45
48
  specification_version: 4
46
49
  summary: A client for the OpenCage geocoder API
47
50
  test_files: []