def get(keys, cas = nil)
return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
return {} if keys.empty?
method = cas ? 'gets' : 'get'
results = {}
keys = keys.collect {|key| cache_key(key)}
read_command("#{method} #{keys.join(' ')}") do |response|
if cas
key, flags, length, cas = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)/)
else
key, flags, length = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+)/)
end
value = socket.read(length.to_i)
match_response!(socket.read(2), "\r\n")
value.memcache_flags = flags.to_i
value.memcache_cas = cas
key = input_key(key)
results[key] = value
end
results
end