def convert_unprocessed_keys response
return nil if response.data['UnprocessedKeys'].empty?
str2sym = lambda do |key_desc|
type, value = key_desc.to_a.flatten
case type
when "S" then { :s => value }
when "N" then { :n => value }
else
raise "unhandled key type: #{type}"
end
end
request_items = {}
response.data['UnprocessedKeys'].each_pair do |table,keys|
request_items[table] = {}
request_items[table][:attributes_to_get] = keys['AttributesToGet'] if
keys['AttributesToGet']
request_items[table][:keys] = keys['Keys'].collect do |desc|
key = {}
key[:hash_key_element] = str2sym.call(desc['HashKeyElement'])
key[:range_key_element] = str2sym.call(desc['RangeKeyElement']) if
desc['RangeKeyElement']
key
end
end
request_items
end