addressfinder 1.12.0 → 1.14.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: b7560a344ccda446dd9416a1bdd2a46b2e78a4c01fdbd84a17336ce7afa02f23
4
- data.tar.gz: 1b1a9d50c4a624663f9aa16a783634257ddec64677c45ab2c6108059709d2636
3
+ metadata.gz: 0d90188a9c9fc48c8fe6f6969422dbd58fca983e1df1fcd847b30a901e517d57
4
+ data.tar.gz: dbf03555650c7b18d98e95984eba7355dc23e6002bde8992222203d2cb5d33bc
5
5
  SHA512:
6
- metadata.gz: 860546a06124a3e95c1c34a357c323a6500e8f9950c1d87a1963f05fdbbe3405f804f1392b0d62380ed87405e44ae1b196dc426c807ff21c527b2aaa9b36e353
7
- data.tar.gz: 4a954a4bd36d77ac017daa151182a0e7801dcc9c87883c01945993cab90ecd51162826af42cbee427c547e061b84fe0c4fc61d7c9c075a136d47bafc2001ab41
6
+ metadata.gz: 26482cf4b76f70993a20dac62aeb5c6bc4b9cda257343fb47dccd049adea2098a4bab8bf1027ae40377071b6eba02162e9bd6fa94a3391ee4afaf9bf74e2f008
7
+ data.tar.gz: ed1ce7451090295ebf848e75133e2b19c376bed7c802dd584b72a516695b0e67172e043a4e88c85b3f93714dc5655b9b5f744f0a4b1a193b92f2c62671790383
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # Addressfinder 1.14.0 (February 2025) #
2
+
3
+ * Add support for Ruby 3.4
4
+
5
+ # Addressfinder 1.13.0 (September 2024) #
6
+
7
+ * Add client agent versioning
8
+
1
9
  # Addressfinder 1.12.0 (May 2024) #
2
10
 
3
11
  * Add a batch capability with concurrency for Address Verification
data/README.md CHANGED
@@ -61,10 +61,10 @@ For available parameters and example responses, see the API documentation pages
61
61
  To verify a single New Zealand address, use the following method:
62
62
 
63
63
  ```ruby
64
- result = AddressFinder.address_verification(q: '186 Willis St, Wellington', country: 'nz')
64
+ result = AddressFinder.address_verification(q: "186 Willis St, Wellington", country: "nz")
65
65
 
66
66
  if result
67
- $stdout.puts "Success: #{result.postal}"
67
+ $stdout.puts "Success: '#{result.a}'"
68
68
  else
69
69
  $stdout.puts "Sorry, can't find that address"
70
70
  end
@@ -74,15 +74,16 @@ You can also verify a batch of New Zealand addresses using the following method.
74
74
  We suggest that you send up to 100 addresses in each batch.
75
75
 
76
76
  ```ruby
77
- result = AddressFinder.address_verification_nz_batch(addresses: [
78
- "186 Willis St, Wellington",
79
- "1 Ghuznee St, Te Aro, Wellington 6011"
80
- ], concurrency: 5)
77
+ addresses = ["186 Willis St, Wellington", "1 Ghuznee St, Te Aro, Wellington 6011", "bad address"]
81
78
 
82
- if result
83
- $stdout.puts "Success: #{result.postal}"
84
- else
85
- $stdout.puts "Sorry, can't find that address"
79
+ results = AddressFinder.address_verification_nz_batch(addresses: addresses, concurrency: 10)
80
+
81
+ results.each_with_index do |result, index|
82
+ if result
83
+ $stdout.puts "Success: matched '#{addresses[index]}' with '#{result.a}'"
84
+ else
85
+ $stdout.puts "Sorry, can't find address: '#{addresses[index]}'"
86
+ end
86
87
  end
87
88
  ```
88
89
 
@@ -106,15 +107,16 @@ You can also verify a batch of Australian addresses using the following method:
106
107
  We suggest that you send up to 100 addresses in each batch.
107
108
 
108
109
  ```ruby
109
- result = AddressFinder.address_verification_au_batch(addresses: [
110
- "10/274 Harbour Drive, Coffs Harbour NSW 2450",
111
- "49 CORNISH ST, COBAR NSW 2835"
112
- ], gnaf: "1", concurrency: 5)
110
+ addresses = ["10/274 Harbour Drive, Coffs Harbour NSW 2450", "49 CORNISH ST, COBAR NSW 2835", "bad address"]
113
111
 
114
- if result
115
- $stdout.puts "Success: #{result.full_address}"
116
- else
117
- $stdout.puts "Sorry, can't find that address"
112
+ results = AddressFinder.address_verification_au_batch(addresses: addresses, gnaf: "1", concurrency: 10)
113
+
114
+ results.each_with_index do |result, index|
115
+ if result
116
+ $stdout.puts "Success: matched '#{addresses[index]}' with '#{result.a}'"
117
+ else
118
+ $stdout.puts "Sorry, can't find address: '#{addresses[index]}'"
119
+ end
118
120
  end
119
121
  ```
120
122
 
@@ -19,6 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.required_ruby_version = '>= 2.7'
20
20
  gem.add_dependency 'multi_json', '~> 1.15'
21
21
  gem.add_dependency "concurrent-ruby", "~> 1.2"
22
+ gem.add_dependency 'ostruct', '> 0.6'
22
23
 
23
24
  gem.add_development_dependency 'guard-rspec', '~> 4.7'
24
25
  gem.add_development_dependency 'listen', '~> 3.7'
@@ -29,10 +29,12 @@ You can obtain an API key by registering for a free trial account at https://add
29
29
 
30
30
  ## Example execution
31
31
 
32
- > `export AF_KEY=XXXXXXXXXXXXXXX`
33
- > `bundle exec ruby process_nz_address_csv.rb sample_addresses_nz.csv`
32
+ Processing a CSV file of New Zealand address records:
34
33
 
35
34
  ```
35
+ > export AF_KEY=XXXXXXXXXXXXXXX
36
+ > export AF_SECRET=YYYYYYYYYYYYYYY
37
+ > bundle exec ruby process_nz_address_csv.rb sample_addresses_nz.csv
36
38
  address_id,address_query,address_query_length,full_address,address_id
37
39
  1,133 wilton road wilton wellington,33,"133 Wilton Road, Wilton, Wellington 6012",2-.F.1W.v.Torm
38
40
  2,1 ghuznee st te aro wellington 6011,35,"1 Ghuznee Street, Te Aro, Wellington 6011",2-2eNwG1oBJExni2nUFJm1cW
@@ -43,9 +45,10 @@ address_id,address_query,address_query_length,full_address,address_id
43
45
  # ...
44
46
  ```
45
47
 
46
- > `bundle exec ruby process_au_address_csv.rb sample_addresses_au.csv`
48
+ Processing a CSV file of Australian address records:
47
49
 
48
50
  ```
51
+ > bundle exec ruby process_au_address_csv.rb sample_addresses_au.csv
49
52
  address_id,address_query,address_query_length,full_address,address_id
50
53
  1,"10/274 harbour drive, coffs harbour NSW 2450",44,"Unit 10, 274 Harbour Drive, COFFS HARBOUR NSW 2450",670cd8c3-b883-ee24-2874-74440e515b80
51
54
  2,"9/274 harbour drive, coffs harbour NSW 2450",43,"Unit 9, 274 Harbour Drive, COFFS HARBOUR NSW 2450",42ae5625-d679-266b-5d66-5ece6bbfb179
@@ -44,9 +44,7 @@ module AddressFinder
44
44
  end
45
45
 
46
46
  def execute_request
47
- request = Net::HTTP::Get.new(request_uri)
48
-
49
- response = http.request(request)
47
+ response = http.request(request_uri)
50
48
 
51
49
  self.response_body = response.body
52
50
  self.response_status = response.code
@@ -37,9 +37,7 @@ module AddressFinder
37
37
  end
38
38
 
39
39
  def execute_request
40
- request = Net::HTTP::Get.new(request_uri)
41
-
42
- response = http.request(request)
40
+ response = http.request(request_uri)
43
41
 
44
42
  self.response_body = response.body
45
43
  self.response_status = response.code
@@ -37,9 +37,7 @@ module AddressFinder
37
37
  end
38
38
 
39
39
  def execute_request
40
- request = Net::HTTP::Get.new(request_uri)
41
-
42
- response = http.request(request)
40
+ response = http.request(request_uri)
43
41
 
44
42
  self.response_body = response.body
45
43
  self.response_status = response.code
@@ -14,6 +14,7 @@ module AddressFinder
14
14
  attr_accessor :domain
15
15
  attr_accessor :retries
16
16
  attr_accessor :retry_delay
17
+ attr_accessor :ca
17
18
 
18
19
  def initialize
19
20
  self.hostname = 'api.addressfinder.io'
@@ -23,6 +24,7 @@ module AddressFinder
23
24
  self.retry_delay = 5
24
25
  self.default_country = 'nz'
25
26
  self.verification_version = 'v1'
27
+ self.ca = "Ruby/#{AddressFinder::VERSION}"
26
28
  end
27
29
  end
28
30
  end
@@ -15,11 +15,15 @@ module AddressFinder
15
15
  end
16
16
  end
17
17
 
18
- def request(args)
18
+ def request(request_uri)
19
19
  retries = 0
20
20
  begin
21
21
  re_establish_connection if @connection_is_bad
22
- net_http.request(args)
22
+
23
+ uri = build_uri(request_uri)
24
+ request = Net::HTTP::Get.new(uri)
25
+
26
+ net_http.request(request)
23
27
  rescue Net::ReadTimeout, Net::OpenTimeout, SocketError => error
24
28
  if retries < config.retries
25
29
  retries += 1
@@ -40,6 +44,19 @@ module AddressFinder
40
44
  net_http.start
41
45
  end
42
46
 
47
+ def build_uri(request_uri)
48
+ uri = URI(request_uri)
49
+ encoded_ca = URI.encode_www_form_component(config.ca)
50
+
51
+ if uri.query
52
+ uri.query += "&ca=#{encoded_ca}"
53
+ else
54
+ uri.query = "ca=#{encoded_ca}"
55
+ end
56
+
57
+ uri.to_s
58
+ end
59
+
43
60
  def net_http
44
61
  @net_http ||= begin
45
62
  http = Net::HTTP.new(config.hostname, config.port, config.proxy_host,
@@ -38,9 +38,7 @@ module AddressFinder
38
38
  end
39
39
 
40
40
  def execute_request
41
- request = Net::HTTP::Get.new(request_uri)
42
-
43
- response = http.request(request)
41
+ response = http.request(request_uri)
44
42
 
45
43
  self.response_body = response.body
46
44
  self.response_status = response.code
@@ -38,9 +38,7 @@ module AddressFinder
38
38
  end
39
39
 
40
40
  def execute_request
41
- request = Net::HTTP::Get.new(request_uri)
42
-
43
- response = http.request(request)
41
+ response = http.request(request_uri)
44
42
 
45
43
  self.response_body = response.body
46
44
  self.response_status = response.code
@@ -20,12 +20,12 @@ module AddressFinder
20
20
  build_request
21
21
  execute_request
22
22
  build_result
23
-
23
+
24
24
  self
25
25
  end
26
26
 
27
27
  private
28
-
28
+
29
29
  attr_reader :request_uri, :params, :http, :path
30
30
  attr_accessor :response_body, :response_status
31
31
  attr_writer :result
@@ -33,20 +33,18 @@ module AddressFinder
33
33
  def build_request
34
34
  @request_uri = "#{path}?#{encoded_params}"
35
35
  end
36
-
36
+
37
37
  def encoded_params
38
38
  Util.encode_and_join_params(params)
39
39
  end
40
-
40
+
41
41
  def execute_request
42
- request = Net::HTTP::Get.new(request_uri)
43
-
44
- response = http.request(request)
45
-
42
+ response = http.request(request_uri)
43
+
46
44
  self.response_body = response.body
47
45
  self.response_status = response.code
48
46
  end
49
-
47
+
50
48
  def build_result
51
49
  case response_status
52
50
  when '200'
@@ -55,15 +53,15 @@ module AddressFinder
55
53
  raise AddressFinder::RequestRejectedError.new(response_status, response_body)
56
54
  end
57
55
  end
58
-
56
+
59
57
  def response_hash
60
58
  @_response_hash ||= MultiJson.load(response_body)
61
59
  end
62
-
60
+
63
61
  def config
64
62
  @_config ||= AddressFinder.configuration
65
63
  end
66
-
64
+
67
65
  class Result < OpenStruct
68
66
  end
69
67
  end
@@ -56,9 +56,7 @@ module AddressFinder
56
56
  end
57
57
 
58
58
  def execute_request
59
- request = Net::HTTP::Get.new(request_uri)
60
-
61
- response = http.request(request)
59
+ response = http.request(request_uri)
62
60
 
63
61
  self.response_body = response.body
64
62
  self.response_status = response.code
@@ -61,9 +61,7 @@ module AddressFinder
61
61
  end
62
62
 
63
63
  def execute_request
64
- request = Net::HTTP::Get.new(request_uri)
65
-
66
- response = http.request(request)
64
+ response = http.request(request_uri)
67
65
 
68
66
  self.response_body = response.body
69
67
  self.response_status = response.code
@@ -1,3 +1,3 @@
1
1
  module AddressFinder
2
- VERSION = "1.12.0"
2
+ VERSION = "1.14.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: addressfinder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nigel Ramsay
@@ -9,10 +9,9 @@ authors:
9
9
  - Sean Arnold
10
10
  - Alexandre Barret
11
11
  - Cassandre Guinut
12
- autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2024-05-09 00:00:00.000000000 Z
14
+ date: 2025-02-28 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: multi_json
@@ -42,6 +41,20 @@ dependencies:
42
41
  - - "~>"
43
42
  - !ruby/object:Gem::Version
44
43
  version: '1.2'
44
+ - !ruby/object:Gem::Dependency
45
+ name: ostruct
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">"
49
+ - !ruby/object:Gem::Version
50
+ version: '0.6'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">"
56
+ - !ruby/object:Gem::Version
57
+ version: '0.6'
45
58
  - !ruby/object:Gem::Dependency
46
59
  name: guard-rspec
47
60
  requirement: !ruby/object:Gem::Requirement
@@ -180,7 +193,6 @@ homepage: https://github.com/AddressFinder/addressfinder-ruby
180
193
  licenses:
181
194
  - MIT
182
195
  metadata: {}
183
- post_install_message:
184
196
  rdoc_options: []
185
197
  require_paths:
186
198
  - lib
@@ -195,8 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
207
  - !ruby/object:Gem::Version
196
208
  version: '0'
197
209
  requirements: []
198
- rubygems_version: 3.4.6
199
- signing_key:
210
+ rubygems_version: 3.6.2
200
211
  specification_version: 4
201
212
  summary: Provides easy access to Addressfinder APIs
202
213
  test_files: []