Fix option not being passed with fetch_multi
In redis cache store, options to `fetch_multi` are passed correctly to `write_multi` but not to `read_multi`. This causes cache always to be missed when passing `namespace` option to it.
This commit is contained in:
parent
9e9a0a501f
commit
4a552c3ab9
|
@ -1,3 +1,8 @@
|
||||||
|
* Fixed issue in `ActiveSupport::Cache::RedisCacheStore` not passing options
|
||||||
|
to `read_multi` causing `fetch_multi` to not work properly
|
||||||
|
|
||||||
|
*Rajesh Sharma*
|
||||||
|
|
||||||
* Fixed issue in `ActiveSupport::Cache::MemCacheStore` which caused duplicate compression,
|
* Fixed issue in `ActiveSupport::Cache::MemCacheStore` which caused duplicate compression,
|
||||||
and caused the provided `compression_threshold` to not be respected.
|
and caused the provided `compression_threshold` to not be respected.
|
||||||
|
|
||||||
|
|
|
@ -351,7 +351,7 @@ module ActiveSupport
|
||||||
|
|
||||||
def read_multi_entries(names, **options)
|
def read_multi_entries(names, **options)
|
||||||
if mget_capable?
|
if mget_capable?
|
||||||
read_multi_mget(*names)
|
read_multi_mget(*names, **options)
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
|
@ -142,6 +142,14 @@ module ActiveSupport::Cache::RedisCacheStoreTests
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_fetch_multi_with_namespace
|
||||||
|
assert_called_with(@cache.redis, :mget, ["custom-namespace:a", "custom-namespace:b", "custom-namespace:c"], returns: []) do
|
||||||
|
@cache.fetch_multi("a", "b", "c", namespace: "custom-namespace") do |key|
|
||||||
|
key * 2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_fetch_multi_without_names
|
def test_fetch_multi_without_names
|
||||||
assert_not_called(@cache.redis, :mget) do
|
assert_not_called(@cache.redis, :mget) do
|
||||||
@cache.fetch_multi() { }
|
@cache.fetch_multi() { }
|
||||||
|
|
Loading…
Reference in New Issue