45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/active_support/cache/moneta_store.rb', line 45
def fetch_multi(*names)
raise ArgumentError, "Missing block: `Cache#fetch_multi` requires a block." \
unless block_given?
options = names.
options = merged_options(options)
instrument :read_multi, names, options do |payload|
read_multi_entries(names, options).tap do |results|
payload[:hits] = results.keys
payload[:super_operation] = :fetch_multi
writes = {}
(names - results.keys).each do |name|
results[name] = writes[name] = yield(name)
end
write_multi writes, options
end
end
end
|