update

in lib/aws-record/record/item_operations.rb [588:606]


        def update(new_params, opts = {})
          key = {}
          @keys.keys.each_value do |attr_sym|
            unless (value = new_params.delete(attr_sym))
              raise Errors::KeyMissing, "Missing required key #{attr_sym} in #{new_params}"
            end

            attr_name = attributes.storage_name_for(attr_sym)
            key[attr_name] = attributes.attribute_for(attr_sym).serialize(value)
          end
          update_opts = {
            table_name: table_name,
            key: key
          }
          update_expression_opts = _build_update_expression(new_params)
          opts = _merge_update_expression_opts(update_expression_opts, opts)
          dynamodb_client.update_item(opts.merge(update_opts))
        end