Tidy and speed up ActiveSupport::Cache::Store#read_multi_entries
This commit is contained in:
parent
9d9c749a72
commit
77a416c84f
@ -583,23 +583,20 @@ def write_entry(key, entry, **options)
|
||||
# Reads multiple entries from the cache implementation. Subclasses MAY
|
||||
# implement this method.
|
||||
def read_multi_entries(names, **options)
|
||||
results = {}
|
||||
names.each do |name|
|
||||
key = normalize_key(name, options)
|
||||
version = normalize_version(name, options)
|
||||
entry = read_entry(key, **options)
|
||||
names.each_with_object({}) do |name, results|
|
||||
key = normalize_key(name, options)
|
||||
entry = read_entry(key, **options)
|
||||
|
||||
if entry
|
||||
if entry.expired?
|
||||
delete_entry(key, **options)
|
||||
elsif entry.mismatched?(version)
|
||||
# Skip mismatched versions
|
||||
else
|
||||
results[name] = entry.value
|
||||
end
|
||||
next unless entry
|
||||
|
||||
version = normalize_version(name, options)
|
||||
|
||||
if entry.expired?
|
||||
delete_entry(key, **options)
|
||||
elsif !entry.mismatched?(version)
|
||||
results[name] = entry.value
|
||||
end
|
||||
end
|
||||
results
|
||||
end
|
||||
|
||||
# Writes multiple entries to the cache implementation. Subclasses MAY
|
||||
|
Loading…
Reference in New Issue
Block a user