Module: Geokit::ActsAsMappable

Extended by:
ActiveSupport::Concern
Defined in:
lib/geokit-rails/acts_as_mappable.rb

Defined Under Namespace

Modules: ClassMethods, Glue Classes: UnsupportedAdapter

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.end_of_reflection_chain(through, klass) ⇒ Object



401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
# File 'lib/geokit-rails/acts_as_mappable.rb', line 401

def self.end_of_reflection_chain(through, klass)
  while through
    reflection = nil
    if through.is_a?(Hash)
      association, through = through.to_a.first
    else
      association, through = through, nil
    end

    if reflection = klass.reflect_on_association(association)
      klass = reflection.klass
    else
      raise ArgumentError, "You gave #{association} in :through, but I could not find it on #{klass}."
    end
  end

  reflection
end

Instance Method Details

#auto_geocode_addressObject

this is the callback for auto_geocoding



387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'lib/geokit-rails/acts_as_mappable.rb', line 387

def auto_geocode_address
  address=self.send(auto_geocode_field).to_s
  geo=Geokit::Geocoders::MultiGeocoder.geocode(address)

  if geo.success
    self.send("#{lat_column_name}=", geo.send(:"#{lat_column_name}"))
    self.send("#{lng_column_name}=", geo.send(:"#{lng_column_name}"))
  else
    errors.add(auto_geocode_field, auto_geocode_error_message)
  end

  geo.success
end