class Geocoder::Cache

Public Class Methods

new(store, config) click to toggle source
# File lib/geocoder/cache.rb, line 6
def initialize(store, config)
  @class = (Geocoder::CacheStore.const_get("#{store.class}", false) rescue Geocoder::CacheStore::Generic)
  @store_service = @class.new(store, config)
end

Public Instance Methods

[](url) click to toggle source

Read from the Cache.

# File lib/geocoder/cache.rb, line 14
def [](url)
  interpret store_service.read(url)
rescue => e
  Geocoder.log(:warn, "Geocoder cache read error: #{e}")
end
[]=(url, value) click to toggle source

Write to the Cache.

# File lib/geocoder/cache.rb, line 23
def []=(url, value)
  store_service.write(url, value)
rescue => e
  Geocoder.log(:warn, "Geocoder cache write error: #{e}")
end
expire(url) click to toggle source

Delete cache entry for given URL, or pass :all to clear all URLs.

# File lib/geocoder/cache.rb, line 33
def expire(url)
  if url == :all
    if store_service.respond_to?(:keys)
      urls.each{ |u| expire(u) }
    else
      raise(NoMethodError, "The Geocoder cache store must implement `#keys` for `expire(:all)` to work")
    end
  else
    expire_single_url(url)
  end
end