def get(keys, cas = nil)
return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
return {} if keys.empty?
results = super(keys, cas)
keys = {}
keys_to_fetch = []
results.each do |key, value|
next unless segmented?(value)
keys[key] = segment_keys(value)
keys_to_fetch.concat keys[key]
end
parts = super(keys_to_fetch)
keys.each do |key, hashes|
value = ''
hashes.each do |hash_key|
if part = parts[hash_key]
value << part
else
value = nil
break
end
end
if value
value.memcache_cas = results[key].memcache_cas
value.memcache_flags = results[key].memcache_flags ^ PARTIAL_VALUE
end
results[key] = value
end
results
end