Sha256: 64254138e34c664d2abb38e19ecd32829257eeb4ec5c54f3382829ef369ac972

Contents?: true

Size: 770 Bytes

Versions: 1

Compression:

Stored size: 770 Bytes

Contents

module Geokit
  module Cached
    module Geocodable

      def self.included(base)
        base.class_eval do
          attr_accessor :provider
        end
      end

      def multi_geocoder
        if cache_locations?
          Geokit::Geocoders::CachedMultiGeocoder
        else
          Geokit::Geocoders::MultiGeocoder
        end
      end

      def geocode_address_cached
        @geo = multi_geocoder.geocode(complete_address)
        self.lat, self.lng, self.provider = @geo.lat, @geo.lng, @geo.provider if @geo.success
      end

      def cache_location!
        cached_location.cache!(:lat => lat, :lng => lng, :provider => provider) if cache_locations?
      end

      def cache_locations?
        self.class::CACHE_LOCATIONS
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
Pr0d1r2-geokit-1.3.2.5 lib/geokit/cached/geocodable.rb