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