Skip to content

Commit 0a5ad32

Browse files
authored
Merge pull request #461 from kirsis/master
Allow attribute deletion without a value
2 parents 4816627 + 20ad8f0 commit 0a5ad32

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

lib/dynamoid/adapter_plugin/aws_sdk_v3/item_updater.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ def to_h
5959
end
6060
@deletions.each do |k, v|
6161
ret[k.to_s] = {
62-
action: DELETE,
63-
value: v
62+
action: DELETE
6463
}
64+
ret[k.to_s][:value] = v unless v.nil?
6565
end
6666
@updates.each do |k, v|
6767
ret[k.to_s] = {

spec/dynamoid/adapter_plugin/aws_sdk_v3_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,6 +1151,16 @@ def dynamo_request(table_name, scan_hash = {}, select_opts = {})
11511151
expect(Dynamoid.adapter.get_item(test_table1, '1')).to include(expected_attributes)
11521152
end
11531153

1154+
it 'deletes attributes' do
1155+
Dynamoid.adapter.put_item(test_table1, id: '1', name: 'Josh', hobbies: %w[skying climbing].to_set)
1156+
1157+
Dynamoid.adapter.update_item(test_table1, '1') do |t|
1158+
t.delete(hobbies: nil)
1159+
end
1160+
1161+
expect(Dynamoid.adapter.get_item(test_table1, '1')).not_to include(:hobbies)
1162+
end
1163+
11541164
it 'sets attribute values' do
11551165
Dynamoid.adapter.put_item(test_table1, id: '1', name: 'Josh')
11561166

0 commit comments

Comments
 (0)