mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
MemcacheStore: deserialize the entry reading from local_cache when using raw
This commit is contained in:
@@ -183,6 +183,14 @@ module ActiveSupport
|
||||
# Provide support for raw values in the local cache strategy.
|
||||
module LocalCacheWithRaw # :nodoc:
|
||||
protected
|
||||
def read_entry(key, options)
|
||||
entry = super
|
||||
if options[:raw] && local_cache && entry
|
||||
entry = deserialize_entry(entry.value)
|
||||
end
|
||||
entry
|
||||
end
|
||||
|
||||
def write_entry(key, entry, options) # :nodoc:
|
||||
retval = super
|
||||
if options[:raw] && local_cache && retval
|
||||
|
||||
@@ -630,7 +630,14 @@ uses_memcached 'memcached backed store' do
|
||||
cache.write("foo", 2)
|
||||
assert_equal "2", cache.read("foo")
|
||||
end
|
||||
|
||||
|
||||
def test_raw_values_with_marshal
|
||||
cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
|
||||
cache.clear
|
||||
cache.write("foo", Marshal.dump([]))
|
||||
assert_equal [], cache.read("foo")
|
||||
end
|
||||
|
||||
def test_local_cache_raw_values
|
||||
cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
|
||||
cache.clear
|
||||
@@ -639,6 +646,15 @@ uses_memcached 'memcached backed store' do
|
||||
assert_equal "2", cache.read("foo")
|
||||
end
|
||||
end
|
||||
|
||||
def test_local_cache_raw_values_with_marshal
|
||||
cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, :raw => true)
|
||||
cache.clear
|
||||
cache.with_local_cache do
|
||||
cache.write("foo", Marshal.dump([]))
|
||||
assert_equal [], cache.read("foo")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user