FIX: support Arrays with Marshal dump in distributed cache

Theme cache uses arrays here
This commit is contained in:
Sam 2018-08-08 16:44:56 +10:00
parent 17047806b9
commit a35f2984e9
2 changed files with 15 additions and 1 deletions

View File

@ -74,7 +74,7 @@ class DistributedCache
def set(hash, key, value)
# special support for set
marshal = (Set === value || Hash === value)
marshal = (Set === value || Hash === value || Array === value)
value = Base64.encode64(Marshal.dump(value)) if marshal
publish(hash, op: :set, key: key, value: value, marshalled: marshal)
end

View File

@ -29,6 +29,20 @@ describe DistributedCache do
cache(cache_name)
end
it 'supports arrays with hashes' do
c1 = cache("test1")
c2 = cache("test1")
c1["test"] = [{ test: :test }]
wait_for do
c2["test"] == [{ test: :test }]
end
expect(c2[:test]).to eq([{ test: :test }])
end
it 'allows us to store Set' do
c1 = cache("test1")
c2 = cache("test1")