Method: IdentityCache.fetch_multi
- Defined in:
- lib/identity_cache.rb
.fetch_multi(*keys) ⇒ Object
Same as fetch, except that it will try a collection of keys, using the multiget operation of the cache adaptor.
Parameters
keys A collection or array of key strings
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/identity_cache.rb', line 173 def fetch_multi(*keys) keys.flatten!(1) return {} if keys.empty? result = if should_use_cache? fetch_in_batches(keys.uniq) do |missed_keys| results = yield missed_keys results.map { |e| map_cached_nil_for(e) } end else results = yield keys Hash[keys.zip(results)] end result.each do |key, value| result[key] = unmap_cached_nil_for(value) end result end |