lib/cache/merb/redis_store.rb in redis-store-1.0.0.beta5 vs lib/cache/merb/redis_store.rb in redis-store-1.0.0.rc1
- old
+ new
@@ -43,12 +43,16 @@
def write_all(key, data = nil, parameters = {}, conditions = {})
write key, data, parameters, conditions
end
def fetch(key, parameters = {}, conditions = {}, &blk)
- read(key, parameters) || (write key, yield, parameters, conditions if block_given?)
+ (data = read(key, parameters)) || block_given? && begin
+ data = yield
+ write(key, data, parameters, conditions)
+ end
+ data || nil
end
-
+
def exists?(key, parameters = {})
@data.exists normalize(key, parameters)
end
def delete(key, parameters = {})