smartystreets_ruby_sdk 5.17.2 → 5.18.1
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 +4 -4
- data/.gitignore +1 -0
- data/lib/smartystreets_ruby_sdk/client_builder.rb +0 -7
- data/lib/smartystreets_ruby_sdk/international_autocomplete/suggestion.rb +3 -1
- data/lib/smartystreets_ruby_sdk/us_autocomplete_pro/client.rb +1 -1
- data/lib/smartystreets_ruby_sdk/us_street/lookup.rb +1 -1
- data/lib/smartystreets_ruby_sdk/us_street/match_type.rb +0 -1
- data/lib/smartystreets_ruby_sdk/version.rb +1 -1
- data/lib/smartystreets_ruby_sdk.rb +0 -3
- metadata +2 -7
- data/lib/smartystreets_ruby_sdk/us_autocomplete/client.rb +0 -72
- data/lib/smartystreets_ruby_sdk/us_autocomplete/geolocation_type.rb +0 -9
- data/lib/smartystreets_ruby_sdk/us_autocomplete/lookup.rb +0 -38
- data/lib/smartystreets_ruby_sdk/us_autocomplete/suggestion.rb +0 -16
- data/lib/smartystreets_ruby_sdk/us_autocomplete.rb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf9f006e4b5ed5f2f1b33ef7abab3044db467d5cd377cd2d8b6d7ca79953f516
|
4
|
+
data.tar.gz: c8f614070a3b5e0a06e0fa9f0654387bda1dfab10e5763834ea89bd1bd4a3b82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4f52e42db666abd8ef54d6332765b7e27b635e6843dbb354a4087634ce46571f742cb40a272ba9039064416178f7b141d0e7f1377aaffbad6abf27fcc2cae9e
|
7
|
+
data.tar.gz: 797b4818853ddefc8f84a57b1b37f9ed44d83072aad27c4d156836ef8e6fde3acefc6c06b83f2afa3ad154664312deb86730193f5695fbf2a322b5127205c8fa
|
data/.gitignore
CHANGED
@@ -12,7 +12,6 @@ require_relative 'custom_header_sender'
|
|
12
12
|
require_relative 'us_street/client'
|
13
13
|
require_relative 'us_zipcode/client'
|
14
14
|
require_relative 'us_extract/client'
|
15
|
-
require_relative 'us_autocomplete/client'
|
16
15
|
require_relative 'international_street/client'
|
17
16
|
require_relative 'international_autocomplete/client'
|
18
17
|
require_relative 'us_reverse_geo/client'
|
@@ -26,7 +25,6 @@ module SmartyStreets
|
|
26
25
|
class ClientBuilder
|
27
26
|
INTERNATIONAL_STREET_API_URL = 'https://international-street.api.smarty.com/verify'.freeze
|
28
27
|
INTERNATIONAL_AUTOCOMPLETE_API_URL = "https://international-autocomplete.api.smarty.com/v2/lookup".freeze
|
29
|
-
US_AUTOCOMPLETE_API_URL = 'https://us-autocomplete.api.smarty.com/suggest'.freeze
|
30
28
|
US_AUTOCOMPLETE_PRO_API_URL = 'https://us-autocomplete-pro.api.smarty.com/lookup'.freeze
|
31
29
|
US_EXTRACT_API_URL = 'https://us-extract.api.smarty.com/'.freeze
|
32
30
|
US_STREET_API_URL = 'https://us-street.api.smarty.com/street-address'.freeze
|
@@ -134,11 +132,6 @@ module SmartyStreets
|
|
134
132
|
InternationalAutocomplete::Client.new(build_sender, @serializer)
|
135
133
|
end
|
136
134
|
|
137
|
-
def build_us_autocomplete_api_client # Deprecated
|
138
|
-
ensure_url_prefix_not_null(US_AUTOCOMPLETE_API_URL)
|
139
|
-
USAutocomplete::Client.new(build_sender, @serializer)
|
140
|
-
end
|
141
|
-
|
142
135
|
def build_us_autocomplete_pro_api_client
|
143
136
|
ensure_url_prefix_not_null(US_AUTOCOMPLETE_PRO_API_URL)
|
144
137
|
USAutocompletePro::Client.new(build_sender, @serializer)
|
@@ -2,12 +2,14 @@ module SmartyStreets
|
|
2
2
|
module InternationalAutocomplete
|
3
3
|
class Suggestion
|
4
4
|
|
5
|
-
attr_reader :street, :locality, :administrative_area, :postal_code, :country_iso3, :entries, :address_text, :address_id
|
5
|
+
attr_reader :street, :locality, :administrative_area, :administrative_area_short, :administrative_area_long, :postal_code, :country_iso3, :entries, :address_text, :address_id
|
6
6
|
|
7
7
|
def initialize(obj)
|
8
8
|
@street = obj.fetch('street', nil)
|
9
9
|
@locality = obj.fetch('locality', nil)
|
10
10
|
@administrative_area = obj.fetch('administrative_area', nil)
|
11
|
+
@administrative_area_short = obj.fetch('administrative_area_short', nil)
|
12
|
+
@administrative_area_long = obj.fetch('administrative_area_long', nil)
|
11
13
|
@postal_code = obj.fetch('postal_code', nil)
|
12
14
|
@country_iso3 = obj.fetch('country_iso3', nil)
|
13
15
|
# v2 fields
|
@@ -44,7 +44,7 @@ module SmartyStreets
|
|
44
44
|
add_parameter(request, 'prefer_zip_codes', build_filter_string(lookup.prefer_zip_codes))
|
45
45
|
add_parameter(request, 'prefer_ratio', lookup.prefer_ratio.to_s)
|
46
46
|
add_parameter(request, 'source', lookup.source)
|
47
|
-
if lookup.prefer_zip_codes
|
47
|
+
if lookup.prefer_zip_codes.any? || lookup.zip_filter.any?
|
48
48
|
request.parameters['prefer_geolocation'] = GeolocationType::NONE
|
49
49
|
else
|
50
50
|
add_parameter(request, 'prefer_geolocation', lookup.prefer_geolocation)
|
@@ -6,7 +6,7 @@ module SmartyStreets
|
|
6
6
|
#
|
7
7
|
# See "https://smartystreets.com/docs/cloud/us-street-api#input-fields"
|
8
8
|
#
|
9
|
-
# @match:: Must be set to 'strict', '
|
9
|
+
# @match:: Must be set to 'strict', 'enhanced', or 'invalid'. Constants for these are in match_type.rb
|
10
10
|
class Lookup < JSONAble
|
11
11
|
attr_accessor :input_id, :street, :street2, :secondary, :city, :state, :zipcode, :lastline, :addressee, :urbanization,
|
12
12
|
:match, :candidates, :format, :result
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'smartystreets_ruby_sdk/version'
|
2
2
|
require 'smartystreets_ruby_sdk/logger'
|
3
3
|
require 'smartystreets_ruby_sdk/sleeper'
|
4
|
-
|
5
4
|
require 'smartystreets_ruby_sdk/batch'
|
6
5
|
require 'smartystreets_ruby_sdk/client_builder'
|
7
6
|
require 'smartystreets_ruby_sdk/custom_header_sender'
|
@@ -20,11 +19,9 @@ require 'smartystreets_ruby_sdk/signing_sender'
|
|
20
19
|
require 'smartystreets_ruby_sdk/static_credentials'
|
21
20
|
require 'smartystreets_ruby_sdk/status_code_sender'
|
22
21
|
require 'smartystreets_ruby_sdk/url_prefix_sender'
|
23
|
-
|
24
22
|
require 'smartystreets_ruby_sdk/us_extract'
|
25
23
|
require 'smartystreets_ruby_sdk/us_street'
|
26
24
|
require 'smartystreets_ruby_sdk/us_zipcode'
|
27
|
-
require 'smartystreets_ruby_sdk/us_autocomplete'
|
28
25
|
require 'smartystreets_ruby_sdk/us_autocomplete_pro'
|
29
26
|
require 'smartystreets_ruby_sdk/international_street'
|
30
27
|
require 'smartystreets_ruby_sdk/international_autocomplete'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartystreets_ruby_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.18.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SmartyStreets SDK Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,11 +136,6 @@ files:
|
|
136
136
|
- lib/smartystreets_ruby_sdk/static_credentials.rb
|
137
137
|
- lib/smartystreets_ruby_sdk/status_code_sender.rb
|
138
138
|
- lib/smartystreets_ruby_sdk/url_prefix_sender.rb
|
139
|
-
- lib/smartystreets_ruby_sdk/us_autocomplete.rb
|
140
|
-
- lib/smartystreets_ruby_sdk/us_autocomplete/client.rb
|
141
|
-
- lib/smartystreets_ruby_sdk/us_autocomplete/geolocation_type.rb
|
142
|
-
- lib/smartystreets_ruby_sdk/us_autocomplete/lookup.rb
|
143
|
-
- lib/smartystreets_ruby_sdk/us_autocomplete/suggestion.rb
|
144
139
|
- lib/smartystreets_ruby_sdk/us_autocomplete_pro.rb
|
145
140
|
- lib/smartystreets_ruby_sdk/us_autocomplete_pro/client.rb
|
146
141
|
- lib/smartystreets_ruby_sdk/us_autocomplete_pro/geolocation_type.rb
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require_relative '../request'
|
2
|
-
require_relative '../exceptions'
|
3
|
-
require_relative 'geolocation_type'
|
4
|
-
require_relative 'suggestion'
|
5
|
-
|
6
|
-
module SmartyStreets
|
7
|
-
module USAutocomplete
|
8
|
-
# It is recommended to instantiate this class using ClientBuilder.build_us_autocomplete_api_client
|
9
|
-
class Client
|
10
|
-
def initialize(sender, serializer)
|
11
|
-
@sender = sender
|
12
|
-
@serializer = serializer
|
13
|
-
end
|
14
|
-
|
15
|
-
# Sends a Lookup object to the US Autocomplete API and stores the result in the Lookup's result field.
|
16
|
-
def send(lookup)
|
17
|
-
if not lookup or not lookup.prefix
|
18
|
-
raise SmartyStreets::SmartyError, 'Send() must be passed a Lookup with the prefix field set.'
|
19
|
-
end
|
20
|
-
|
21
|
-
request = build_request(lookup)
|
22
|
-
|
23
|
-
response = @sender.send(request)
|
24
|
-
|
25
|
-
raise response.error if response.error
|
26
|
-
|
27
|
-
result = @serializer.deserialize(response.payload)
|
28
|
-
suggestions = convert_suggestions(result.fetch('suggestions', []))
|
29
|
-
lookup.result = suggestions
|
30
|
-
end
|
31
|
-
|
32
|
-
|
33
|
-
def build_request(lookup)
|
34
|
-
request = Request.new
|
35
|
-
|
36
|
-
add_parameter(request, 'prefix', lookup.prefix)
|
37
|
-
add_parameter(request, 'suggestions', lookup.max_suggestions.to_s)
|
38
|
-
add_parameter(request, 'city_filter', build_filter_string(lookup.city_filter))
|
39
|
-
add_parameter(request, 'state_filter', build_filter_string(lookup.state_filter))
|
40
|
-
add_parameter(request, 'prefer', build_filter_string(lookup.prefer))
|
41
|
-
add_parameter(request, 'prefer_ratio', lookup.prefer_ratio.to_s)
|
42
|
-
if lookup.geolocate_type != GeolocationType::NONE
|
43
|
-
request.parameters['geolocate'] = 'true'
|
44
|
-
request.parameters['geolocate_precision'] = lookup.geolocate_type
|
45
|
-
else
|
46
|
-
request.parameters['geolocate'] = 'false'
|
47
|
-
end
|
48
|
-
|
49
|
-
request
|
50
|
-
end
|
51
|
-
|
52
|
-
def build_filter_string(filter_list)
|
53
|
-
filter_list ? filter_list.join(',') : nil
|
54
|
-
end
|
55
|
-
|
56
|
-
def convert_suggestions(suggestion_hashes)
|
57
|
-
converted_suggestions = []
|
58
|
-
return converted_suggestions if suggestion_hashes.nil?
|
59
|
-
|
60
|
-
suggestion_hashes.each do |suggestion|
|
61
|
-
converted_suggestions.push(USAutocomplete::Suggestion.new(suggestion))
|
62
|
-
end
|
63
|
-
|
64
|
-
converted_suggestions
|
65
|
-
end
|
66
|
-
|
67
|
-
def add_parameter(request, key, value)
|
68
|
-
request.parameters[key] = value unless value.nil? or value.empty?
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require_relative '../json_able'
|
2
|
-
|
3
|
-
module SmartyStreets
|
4
|
-
module USAutocomplete
|
5
|
-
# In addition to holding all of the input data for this lookup, this class also will contain the result
|
6
|
-
# of the lookup after it comes back from the API.
|
7
|
-
#
|
8
|
-
# See "https://smartystreets.com/docs/cloud/us-autocomplete-api#http-request-input-fields"
|
9
|
-
class Lookup < JSONAble
|
10
|
-
|
11
|
-
attr_accessor :result, :prefix, :state_filter, :prefer, :prefer_ratio, :max_suggestions, :geolocate_type, :city_filter
|
12
|
-
|
13
|
-
def initialize(prefix=nil, suggestions=nil, city_filter=nil, state_filter=nil,
|
14
|
-
prefer=nil, prefer_ratio=nil, geolocate_type=nil)
|
15
|
-
@result = []
|
16
|
-
@prefix = prefix
|
17
|
-
@max_suggestions = suggestions
|
18
|
-
@city_filter = city_filter ? city_filter : []
|
19
|
-
@state_filter = state_filter ? state_filter : []
|
20
|
-
@prefer = prefer ? prefer : []
|
21
|
-
@prefer_ratio = prefer_ratio
|
22
|
-
@geolocate_type = geolocate_type
|
23
|
-
end
|
24
|
-
|
25
|
-
def add_city_filter(city)
|
26
|
-
@city_filter.push(city)
|
27
|
-
end
|
28
|
-
|
29
|
-
def add_state_filter(state)
|
30
|
-
@state_filter.push(state)
|
31
|
-
end
|
32
|
-
|
33
|
-
def add_prefer(prefer)
|
34
|
-
@prefer.push(prefer)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module SmartyStreets
|
2
|
-
module USAutocomplete
|
3
|
-
# See "https://smartystreets.com/docs/cloud/us-autocomplete-api#http-response"
|
4
|
-
class Suggestion
|
5
|
-
|
6
|
-
attr_reader :text, :street_line, :state, :city
|
7
|
-
|
8
|
-
def initialize(obj)
|
9
|
-
@text = obj.fetch('text', nil)
|
10
|
-
@street_line = obj.fetch('street_line', nil)
|
11
|
-
@city = obj.fetch('city', nil)
|
12
|
-
@state = obj.fetch('state', nil)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|