class MyStuff::Cache::MemcachedCache

Memcache-base cached.

If you want to use this, you know what it does.

Public Class Methods

new(memcached, options = {}) click to toggle source

Create an instance of this cache.

memcached is a Memcached object, provided by the memcached gem.

Calls superclass method MyStuff::Cache::Base::new
# File lib/my_stuff/cache/memcached_cache.rb, line 14
def initialize memcached, options = {}
  @mc = memcached
  super options
end

Public Instance Methods

get(keys, options = {}) click to toggle source
# File lib/my_stuff/cache/memcached_cache.rb, line 19
def get keys, options = {}
  begin
    if prefix.nil? || prefix.empty?
      mc_keys = keys
    else
      mc_keys = keys.map{|x| prefix + x}
    end
    results = @mc.get(mc_keys) unless keys.empty?
    keys.map{|k| results[k]}
  rescue Memcached::Error => e
    logger.warn e.inspect
    [nil] * keys.size
  end
end
set(values, options = {}) click to toggle source
# File lib/my_stuff/cache/memcached_cache.rb, line 34
def set values, options = {}
  options[:ttl] ||= 0
  begin
    values.each do |k,v|
      prefix = self.prefix || ''
      @mc.set(prefix + k, v, options[:ttl])
    end
  rescue Memcached::Error => e
    logger.warn e
  end
end