lib/geokit/geo_loc.rb in geokit-1.9.0 vs lib/geokit/geo_loc.rb in geokit-1.10.0

- old
+ new

@@ -31,11 +31,12 @@ :neighborhood # Attributes set upon return from geocoding. Success will be true for # successful geocode lookups. The provider will be set to the name of the # providing geocoder. Finally, precision is an indicator of the accuracy of # the geocoding. - attr_accessor :success, :provider, :precision, :suggested_bounds + attr_accessor :success, :provider, :precision, :suggested_bounds, :place_id, + :formatted_address # accuracy is set for Yahoo and Google geocoders, it is a numeric value of # the precision. see # http://code.google.com/apis/maps/documentation/geocoding/#GeocodingAccuracy attr_accessor :accuracy # FCC Attributes @@ -55,22 +56,22 @@ @state_name = h[:state_name] @zip = h[:zip] @country_code = h[:country_code] @province = h[:province] @success = false - @precision = 'unknown' + @precision = "unknown" @full_address = nil super(h[:lat], h[:lng]) end def state @state || @state_code || @state_name end # Returns true if geocoded to the United States. def is_us? - country_code == 'US' + country_code == "US" end def success? success == true end @@ -92,30 +93,35 @@ def street_name @street_name ||= street_address[street_number.length, street_address.length].strip if street_address @street_name end + # Returns Google-supplied normalized address string or concatenation of address parts + def formatted_address + @formatted_address ||= full_address + end + # gives you all the important fields as key-value pairs def hash res = {} fields = [:success, :lat, :lng, :country_code, :city, :state, :zip, :street_address, :province, :district, :provider, :full_address, :is_us?, :ll, :precision, :district_fips, :state_fips, :block_fips, :sub_premise] fields.each { |s| res[s] = send(s.to_s) } res end - alias to_hash hash + alias_method :to_hash, :hash # Sets the city after capitalizing each word within the city name. def city=(city) @city = Geokit::Inflector.titleize(city) if city end # Sets the street address after capitalizing each word within the street # address. def street_address=(address) - @street_address = if address && provider != 'google' + @street_address = if address && provider != "google" Geokit::Inflector.titleize(address) else address end end @@ -123,16 +129,16 @@ # Returns a comma-delimited string consisting of the street address, city, # state, zip, and country code. Only includes those attributes that are # non-blank. def to_geocodeable_s a = [street_address, district, city, province, state, zip, country_code].compact - a.delete_if { |e| !e || e == '' } - a.join(', ') + a.delete_if { |e| !e || e == "" } + a.join(", ") end def to_yaml_properties - (instance_variables - ['@all', :@all]).sort + (instance_variables - ["@all", :@all]).sort end def encode_with(coder) to_yaml_properties.each do |name| coder[name[1..-1].to_s] = instance_variable_get(name.to_s) @@ -147,10 +153,10 @@ "State: #{state}", "Zip: #{zip}", "Latitude: #{lat}", "Longitude: #{lng}", "Country: #{country_code}", - "Success: #{success}" + "Success: #{success}", ].join("\n") end end end