in lib/aws-record/record/item_operations.rb [565:601]
def _build_update_expression(attr_value_pairs)
set_expressions = []
remove_expressions = []
exp_attr_names = {}
exp_attr_values = {}
name_sub_token = "UE_A"
value_sub_token = "ue_a"
attr_value_pairs.each do |attr_sym, value|
name_sub = "#" + name_sub_token
value_sub = ":" + value_sub_token
name_sub_token = name_sub_token.succ
value_sub_token = value_sub_token.succ
attribute = attributes.attribute_for(attr_sym)
attr_name = attributes.storage_name_for(attr_sym)
exp_attr_names[name_sub] = attr_name
if _update_type_remove?(attribute, value)
remove_expressions << "#{name_sub}"
else
set_expressions << "#{name_sub} = #{value_sub}"
exp_attr_values[value_sub] = attribute.serialize(value)
end
end
update_expressions = []
unless set_expressions.empty?
update_expressions << "SET " + set_expressions.join(", ")
end
unless remove_expressions.empty?
update_expressions << "REMOVE " + remove_expressions.join(", ")
end
if update_expressions.empty?
nil
else
[update_expressions.join(" "), exp_attr_names, exp_attr_values]
end
end