Class: Geocoder::Result::SmartyStreets
- Inherits:
-
Base
- Object
- Base
- Geocoder::Result::SmartyStreets
show all
- Defined in:
- lib/geocoder/results/smarty_streets.rb
Instance Attribute Summary
Attributes inherited from Base
#cache_hit, #data
Instance Method Summary
collapse
Methods inherited from Base
#initialize, #latitude, #longitude, #province, #province_code
Instance Method Details
#address ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/geocoder/results/smarty_streets.rb', line 17
def address
parts =
if international_endpoint?
(1..12).map { |i| @data["address#{i}"] }
else
[
delivery_line_1,
delivery_line_2,
last_line
]
end
parts.select{ |i| i.to_s != "" }.join(" ")
end
|
#city ⇒ Object
71
72
73
74
75
76
77
78
79
|
# File 'lib/geocoder/results/smarty_streets.rb', line 71
def city
if international_endpoint?
components['locality']
elsif zipcode_endpoint?
city_states.first['city']
else
components['city_name']
end
end
|
#coordinates ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/geocoder/results/smarty_streets.rb', line 5
def coordinates
result = %w(latitude longitude).map do |i|
zipcode_endpoint? ? zipcodes.first[i] : metadata[i]
end
if result.compact.empty?
nil
else
result
end
end
|
#country ⇒ Object
51
52
53
54
55
|
# File 'lib/geocoder/results/smarty_streets.rb', line 51
def country
international_endpoint? ?
components['country_iso_3'] :
"United States"
end
|
#country_code ⇒ Object
57
58
59
60
61
|
# File 'lib/geocoder/results/smarty_streets.rb', line 57
def country_code
international_endpoint? ?
components['country_iso_3'] :
"US"
end
|
#fips ⇒ Object
97
98
99
100
101
|
# File 'lib/geocoder/results/smarty_streets.rb', line 97
def fips
zipcode_endpoint? ?
zipcodes.first['county_fips'] :
metadata['county_fips']
end
|
#international_endpoint? ⇒ Boolean
107
108
109
|
# File 'lib/geocoder/results/smarty_streets.rb', line 107
def international_endpoint?
!@data['address1'].nil?
end
|
#state ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/geocoder/results/smarty_streets.rb', line 31
def state
if international_endpoint?
components['administrative_area']
elsif zipcode_endpoint?
city_states.first['state']
else
components['state_abbreviation']
end
end
|
#state_code ⇒ Object
41
42
43
44
45
46
47
48
49
|
# File 'lib/geocoder/results/smarty_streets.rb', line 41
def state_code
if international_endpoint?
components['administrative_area']
elsif zipcode_endpoint?
city_states.first['state_abbreviation']
else
components['state_abbreviation']
end
end
|
#street ⇒ Object
Extra methods not in base.rb ————————
65
66
67
68
69
|
# File 'lib/geocoder/results/smarty_streets.rb', line 65
def street
international_endpoint? ?
components['thoroughfare_name'] :
components['street_name']
end
|
#zip4 ⇒ Object
Also known as:
postal_code_extended
92
93
94
|
# File 'lib/geocoder/results/smarty_streets.rb', line 92
def zip4
components['plus4_code']
end
|
#zipcode ⇒ Object
Also known as:
postal_code
81
82
83
84
85
86
87
88
89
|
# File 'lib/geocoder/results/smarty_streets.rb', line 81
def zipcode
if international_endpoint?
components['postal_code']
elsif zipcode_endpoint?
zipcodes.first['zipcode']
else
components['zipcode']
end
end
|
#zipcode_endpoint? ⇒ Boolean
103
104
105
|
# File 'lib/geocoder/results/smarty_streets.rb', line 103
def zipcode_endpoint?
zipcodes.any?
end
|