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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bb4d7f95acdc304c855640ce81cb93563af039289bbae4c09bf36789878004f
4
- data.tar.gz: 482c9eb3f4b9b70eb2490dea7d7bbaa627e4a744bea5e852737c80bf4e7f3d39
3
+ metadata.gz: cf9f006e4b5ed5f2f1b33ef7abab3044db467d5cd377cd2d8b6d7ca79953f516
4
+ data.tar.gz: c8f614070a3b5e0a06e0fa9f0654387bda1dfab10e5763834ea89bd1bd4a3b82
5
5
  SHA512:
6
- metadata.gz: 18a812e046d3353bfb8b29f7964fe239ca8a469d327d66d46ca44f7f53cd908df8e080d9a191e49f4ce06799c025745c060ae36603db356186f25aba732e9cd9
7
- data.tar.gz: f103c20ec45c229dbe503c529f633beb7d44f66b7c32502fa4eccf0e370ed78f83430d9295d62dda97ac4d591a47c80937134bfb6cab9d9a7036c02ecf946822
6
+ metadata.gz: d4f52e42db666abd8ef54d6332765b7e27b635e6843dbb354a4087634ce46571f742cb40a272ba9039064416178f7b141d0e7f1377aaffbad6abf27fcc2cae9e
7
+ data.tar.gz: 797b4818853ddefc8f84a57b1b37f9ed44d83072aad27c4d156836ef8e6fde3acefc6c06b83f2afa3ad154664312deb86730193f5695fbf2a322b5127205c8fa
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .idea
3
3
  coverage
4
4
  *.gem
5
+ /smartystreets-ruby-sdk.iml
@@ -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 or lookup.zip_filter
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', 'range', or 'invalid'. Constants for these are in match_type.rb
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
@@ -2,7 +2,6 @@ module SmartyStreets
2
2
  module USStreet
3
3
  module MatchType
4
4
  STRICT = 'strict'.freeze
5
- RANGE = 'range'.freeze # Deprecated
6
5
  INVALID = 'invalid'.freeze
7
6
  ENHANCED = 'enhanced'.freeze
8
7
  end
@@ -1,3 +1,3 @@
1
1
  module SmartyStreets
2
- VERSION = '5.17.2' # DO NOT EDIT (this is updated by a build job when a new release is published)
2
+ VERSION = '5.18.1' # DO NOT EDIT (this is updated by a build job when a new release is published)
3
3
  end
@@ -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.17.2
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-03-21 00:00:00.000000000 Z
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,9 +0,0 @@
1
- module SmartyStreets
2
- module USAutocomplete
3
- module GeolocationType
4
- CITY = 'city'
5
- STATE = 'state'
6
- NONE = 'null'
7
- end
8
- end
9
- 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
@@ -1,9 +0,0 @@
1
- require_relative './us_autocomplete/lookup'
2
- require_relative './us_autocomplete/geolocation_type'
3
- require_relative './us_autocomplete/suggestion'
4
- require_relative './us_autocomplete/client'
5
-
6
- module SmartyStreets
7
- module USAutocomplete
8
- end
9
- end