class Geocoder::Cache

Public Class Methods

new(store, prefix) click to toggle source
# File lib/geocoder/cache.rb, line 4
def initialize(store, prefix)
  @store = store
  @prefix = prefix
end

Public Instance Methods

[](url) click to toggle source

Read from the Cache.

# File lib/geocoder/cache.rb, line 12
def [](url)
  interpret case
    when store.respond_to?(:[])
      store[key_for(url)]
    when store.respond_to?(:get)
      store.get key_for(url)
    when store.respond_to?(:read)
      store.read key_for(url)
  end
end
[]=(url, value) click to toggle source

Write to the Cache.

# File lib/geocoder/cache.rb, line 26
def []=(url, value)
  case
    when store.respond_to?(:[]=)
      store[key_for(url)] = value
    when store.respond_to?(:set)
      store.set key_for(url), value
    when store.respond_to?(:write)
      store.write key_for(url), value
  end
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 41
def expire(url)
  if url == :all
    if store.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