class Geocodio::Address
Attributes
accuracy[R]
How accurate geocod.io deemed this result to be given the original query.
@return [Float] a number between 0 and 1
city[R]
congressional_districts[R]
county[R]
elementary_school_district[R]
formatted_street[R]
house_district[R]
lat[R]
latitude[R]
lng[R]
longitude[R]
number[R]
postdirectional[R]
predirectional[R]
secondary_school_district[R]
senate_district[R]
state[R]
street[R]
suffix[R]
timezone[R]
unified_school_district[R]
zip[R]
Public Class Methods
new(payload = {})
click to toggle source
# File lib/geocodio/address.rb, line 26 def initialize(payload = {}) set_attributes(payload['address_components']) if payload['address_components'] set_coordinates(payload['location']) if payload['location'] set_additional_fields(payload['fields']) if payload['fields'] @accuracy = payload['accuracy'] @formatted_address = payload['formatted_address'] end
Public Instance Methods
to_s()
click to toggle source
Formats the address in the standard way.
@return [String] a formatted address
# File lib/geocodio/address.rb, line 38 def to_s @formatted_address end
Private Instance Methods
<=>(address)
click to toggle source
# File lib/geocodio/address.rb, line 99 def <=>(address) return -1 if self.accuracy < address.accuracy return 0 if self.accuracy == address.accuracy return 1 if self.accuracy > address.accuracy end
set_additional_fields(fields)
click to toggle source
# File lib/geocodio/address.rb, line 62 def set_additional_fields(fields) set_congressional_districts(fields['congressional_districts']) if fields['congressional_districts'] set_legislative_districts(fields['state_legislative_districts']) if fields['state_legislative_districts'] set_school_districts(fields['school_districts']) if fields['school_districts'] set_timezone(fields['timezone']) if fields['timezone'] end
set_attributes(attributes)
click to toggle source
# File lib/geocodio/address.rb, line 44 def set_attributes(attributes) @number = attributes['number'] @predirectional = attributes['predirectional'] @street = attributes['street'] @suffix = attributes['suffix'] @postdirectional = attributes['postdirectional'] @formatted_street = attributes['formatted_street'] @city = attributes['city'] @state = attributes['state'] @zip = attributes['zip'] @county = attributes['county'] end
set_congressional_districts(districts)
click to toggle source
# File lib/geocodio/address.rb, line 69 def set_congressional_districts(districts) return if districts.empty? @congressional_districts = districts.map { |district| CongressionalDistrict.new(district) } end
set_coordinates(coordinates)
click to toggle source
# File lib/geocodio/address.rb, line 57 def set_coordinates(coordinates) @latitude = coordinates['lat'] @longitude = coordinates['lng'] end
set_legislative_districts(districts)
click to toggle source
# File lib/geocodio/address.rb, line 75 def set_legislative_districts(districts) return if districts.empty? @house_district = StateLegislativeDistrict.new(districts['house']) if districts['house'] @senate_district = StateLegislativeDistrict.new(districts['senate']) if districts['senate'] end
set_school_districts(schools)
click to toggle source
# File lib/geocodio/address.rb, line 82 def set_school_districts(schools) return if schools.empty? if schools['unified'] @unified_school_district = SchoolDistrict.new(schools['unified']) else @elementary_school_district = SchoolDistrict.new(schools['elementary']) @secondary_school_district = SchoolDistrict.new(schools['secondary']) end end
set_timezone(timezone)
click to toggle source
# File lib/geocodio/address.rb, line 93 def set_timezone(timezone) return if timezone.empty? @timezone = Timezone.new(timezone) end