Sha256: cfa861e22f4c3346ca4c1c51ddf33c7db96f115761d88786a09197c078d49f86

Contents?: true

Size: 765 Bytes

Versions: 11

Compression:

Stored size: 765 Bytes

Contents

module Geocoder::CacheStore
  class Base
    def initialize(store, options)
      @store = store
      @config = options
      @prefix = config[:prefix]
    end

    ##
    # Array of keys with the currently configured prefix
    # that have non-nil values.
    def keys
      store.keys.select { |k| k.match(/^#{prefix}/) and self[k] }
    end

    ##
    # Array of cached URLs.
    #
    def urls
      keys
    end

    protected # ----------------------------------------------------------------

    def prefix; @prefix; end
    def store; @store; end
    def config; @config; end

    ##
    # Cache key for a given URL.
    #
    def key_for(url)
      if url.match(/^#{prefix}/)
        url
      else
        [prefix, url].join
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
geocoder-1.8.5 lib/geocoder/cache_stores/base.rb
geocoder-1.8.4 lib/geocoder/cache_stores/base.rb
geocoder-1.8.3 lib/geocoder/cache_stores/base.rb
geocoder-1.8.2 lib/geocoder/cache_stores/base.rb
geocoder-1.8.1 lib/geocoder/cache_stores/base.rb
geocoder-1.8.0 lib/geocoder/cache_stores/base.rb
geocoder-1.7.5 lib/geocoder/cache_stores/base.rb
geocoder-1.7.4 lib/geocoder/cache_stores/base.rb
geocoder-1.7.3 lib/geocoder/cache_stores/base.rb
geocoder-1.7.2 lib/geocoder/cache_stores/base.rb
geocoder-1.7.1 lib/geocoder/cache_stores/base.rb