Sha256: dae48d84225929364c7ccfa37c4ab0dc9dcd48d988c4a4f861c1c5e83032a4ba

Contents?: true

Size: 934 Bytes

Versions: 11

Compression:

Stored size: 934 Bytes

Contents

begin
  require "memcached"
  MemCache = Memcached
rescue LoadError
  require "memcache"
rescue
  puts "You need either the `memcached` or `memcache-client` gem to use the Memcache moneta store"
  exit
end

module Moneta
  class Memcache
    include Defaults
    
    def initialize(options = {})
      @cache = MemCache.new(options.delete(:server), options)
    end

    def key?(key)
      !self[key].nil?
    end

    alias has_key? key?

    def [](key)
      @cache.get(key)
    end

    def []=(key, value)
      store(key, value)
    end

    def delete(key)
      value = self[key]
      @cache.delete(key) if value
      value
    end

    def store(key, value, options = {})
      args = [key, value, options[:expires_in]].compact
      @cache.set(*args)
    end

    def update_key(key, options = {})
      val = self[key]
      self.store(key, val, options)
    end

    def clear
      @cache.flush_all
    end
  end
end

Version data entries

11 entries across 11 versions & 4 rubygems

Version Path
benschwarz-moneta-0.6.0 lib/moneta/memcache.rb
benschwarz-moneta-0.6.1 lib/moneta/memcache.rb
benschwarz-smoke-0.5.0 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.1 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.2 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.3 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.4 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.5 vendor/moneta/lib/moneta/memcache.rb
benschwarz-smoke-0.5.6 vendor/moneta/lib/moneta/memcache.rb
gotime-moneta-0.6.2 lib/moneta/memcache.rb
thoughtless-moneta-0.6.0.1 lib/moneta/memcache.rb