in lib/aws-record/record/item_operations.rb [538:563]
def update(opts)
key = {}
updates = {}
@keys.keys.each_value do |attr_sym|
unless value = opts.delete(attr_sym)
raise Errors::KeyMissing.new(
"Missing required key #{attr_sym} in #{opts}"
)
end
attr_name = attributes.storage_name_for(attr_sym)
key[attr_name] = attributes.attribute_for(attr_sym).serialize(value)
end
request_opts = {
table_name: table_name,
key: key
}
update_tuple = _build_update_expression(opts)
unless update_tuple.nil?
uex, exp_attr_names, exp_attr_values = update_tuple
request_opts[:update_expression] = uex
request_opts[:expression_attribute_names] = exp_attr_names
request_opts[:expression_attribute_values] = exp_attr_values unless exp_attr_values.empty?
end
dynamodb_client.update_item(request_opts)
end