Skip to content

Commit d525b3b

Browse files
committed
Refactor duplicate code in bulk delete result
1 parent a6debfc commit d525b3b

File tree

1 file changed

+18
-25
lines changed
  • lib/mongo/operation/write/bulk/delete

1 file changed

+18
-25
lines changed

lib/mongo/operation/write/bulk/delete/result.rb

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,10 @@ module Write
1818
module Bulk
1919
class Delete
2020

21-
# Defines custom behaviour of results when deleting.
21+
# Defines common r_removed aggreation behaviour.
2222
#
23-
# @since 2.0.0
24-
class Result < Operation::Result
25-
include Mergable
26-
27-
# The aggregate number of deleted docs reported in the replies.
28-
#
29-
# @since 2.0.0
30-
REMOVED = 'nRemoved'.freeze
23+
# @since 2.2.0
24+
module Aggregatable
3125

3226
# Gets the number of documents deleted.
3327
#
@@ -40,32 +34,31 @@ class Result < Operation::Result
4034
def n_removed
4135
return 0 unless acknowledged?
4236
@replies.reduce(0) do |n, reply|
43-
n += reply.documents.first[N]
37+
n += reply.documents.first[Result::N]
4438
end
4539
end
4640
end
4741

4842
# Defines custom behaviour of results when deleting.
49-
# For server versions < 2.5.5 (that don't use write commands).
5043
#
5144
# @since 2.0.0
52-
class LegacyResult < Operation::Result
53-
include LegacyMergable
45+
class Result < Operation::Result
46+
include Mergable
47+
include Aggregatable
5448

55-
# Gets the number of documents deleted.
56-
#
57-
# @example Get the deleted count.
58-
# result.n_removed
59-
#
60-
# @return [ Integer ] The number of documents deleted.
49+
# The aggregate number of deleted docs reported in the replies.
6150
#
6251
# @since 2.0.0
63-
def n_removed
64-
return 0 unless acknowledged?
65-
@replies.reduce(0) do |n, reply|
66-
n += reply.documents.first[N]
67-
end
68-
end
52+
REMOVED = 'nRemoved'.freeze
53+
end
54+
55+
# Defines custom behaviour of results when deleting.
56+
# For server versions < 2.5.5 (that don't use write commands).
57+
#
58+
# @since 2.0.0
59+
class LegacyResult < Operation::Result
60+
include LegacyMergable
61+
include Aggregatable
6962
end
7063
end
7164
end

0 commit comments

Comments
 (0)