mileszs
5/20/2010 - 4:48 PM

gistfile1.builder

class Memcached
  class Rails < ::Memcached

    def fetch(key, options = {})
      if value = get(key)
        value
      elsif block_given?
        value = yield
        begin
          add(key, value)
        rescue Memcached::NotStored => e
          value = get(key) 
        end
        value
      end
    end

    def clear
      flush
    end

    def exist?(key)
      !get(key).nil?
    end

  end
end