Class: SmartyStreets::InternationalStreet::Lookup

Inherits:
Object
  • Object
show all
Defined in:
lib/smartystreets_ruby_sdk/international_street/lookup.rb

Overview

In addition to holding all of the input data for this lookup, this class also will contain the result of the lookup after it comes back from the API.

Note: Lookups must have certain required fields set with non-blank values. These can be found at the URL below.

See “smartystreets.com/docs/cloud/international-street-api#http-input-fields

@geocode

Disabled by default. Set to true to enable.

@language

When not set, the output language will match the language of the input values.

When set to language_mode.NATIVE, the results will always be in the language of the output country.
When set to language_mode.LATIN, the results will always be provided using a Latin character set.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(freeform = nil, country = nil) ⇒ Lookup

Returns a new instance of Lookup.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 20

def initialize(freeform=nil, country=nil)
  @result = []

  @input_id = nil
  @country = country
  @geocode = nil
  @language = nil
  @freeform = freeform
  @address1 = nil
  @address2 = nil
  @address3 = nil
  @address4 = nil
  @organization = nil
  @locality = nil
  @administrative_area = nil
  @postal_code = nil
end

Instance Attribute Details

#address1Object

Returns the value of attribute address1.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def address1
  @address1
end

#address2Object

Returns the value of attribute address2.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def address2
  @address2
end

#address3Object

Returns the value of attribute address3.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def address3
  @address3
end

#address4Object

Returns the value of attribute address4.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def address4
  @address4
end

#administrative_areaObject

Returns the value of attribute administrative_area.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def administrative_area
  @administrative_area
end

#countryObject

Returns the value of attribute country.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def country
  @country
end

#freeformObject

Returns the value of attribute freeform.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def freeform
  @freeform
end

#geocodeObject

Returns the value of attribute geocode.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def geocode
  @geocode
end

#input_idObject

Returns the value of attribute input_id.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def input_id
  @input_id
end

#inputIdObject

Returns the value of attribute inputId.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def inputId
  @inputId
end

#languageObject

Returns the value of attribute language.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def language
  @language
end

#localityObject

Returns the value of attribute locality.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def locality
  @locality
end

#organizationObject

Returns the value of attribute organization.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def organization
  @organization
end

#postal_codeObject

Returns the value of attribute postal_code.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def postal_code
  @postal_code
end

#resultObject

Returns the value of attribute result.



17
18
19
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 17

def result
  @result
end

Instance Method Details

#ensure_enough_infoObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 66

def ensure_enough_info
  raise UnprocessableEntityError, 'Country field is required.' if missing_country

  return true if has_freeform

  raise UnprocessableEntityError, 'Either freeform or address1 is required.' if missing_address1

  return true if has_postal_code

  if missing_locality_or_administrative_area
    raise UnprocessableEntityError, 'Insufficient information:'\
        'One or more required fields were not set on the lookup.'
  end
end

#field_is_missing(field) ⇒ Object



58
59
60
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 58

def field_is_missing(field)
  field.nil? or field.empty?
end

#field_is_set(field) ⇒ Object



62
63
64
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 62

def field_is_set(field)
  not field_is_missing(field)
end

#has_freeformObject



42
43
44
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 42

def has_freeform
  field_is_set(@freeform)
end

#has_postal_codeObject



50
51
52
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 50

def has_postal_code
  field_is_set(@postal_code)
end

#missing_address1Object



46
47
48
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 46

def missing_address1
  field_is_missing(@address1)
end

#missing_countryObject



38
39
40
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 38

def missing_country
  field_is_missing(@country)
end

#missing_locality_or_administrative_areaObject



54
55
56
# File 'lib/smartystreets_ruby_sdk/international_street/lookup.rb', line 54

def missing_locality_or_administrative_area
  field_is_missing(@locality) or field_is_missing(@administrative_area)
end