File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -5,19 +5,25 @@ class Kredis::Types::UniqueList < Kredis::Types::List
5
5
attr_accessor :typed , :limit
6
6
7
7
def prepend ( elements )
8
+ elements = Array ( elements ) . uniq
9
+ return if elements . empty?
10
+
8
11
multi do
9
12
remove elements
10
13
super
11
14
ltrim 0 , ( limit - 1 ) if limit
12
- end if Array ( elements ) . flatten . any?
15
+ end
13
16
end
14
17
15
18
def append ( elements )
19
+ elements = Array ( elements ) . uniq
20
+ return if elements . empty?
21
+
16
22
multi do
17
23
remove elements
18
24
super
19
25
ltrim -limit , -1 if limit
20
- end if Array ( elements ) . flatten . any?
26
+ end
21
27
end
22
28
alias << append
23
29
end
Original file line number Diff line number Diff line change @@ -63,4 +63,14 @@ class UniqueListTest < ActiveSupport::TestCase
63
63
@list . prepend ( %w[ 6 7 8 ] )
64
64
assert_equal %w[ 8 7 6 5 4 ] , @list . elements
65
65
end
66
+
67
+ test "appending array with duplicates" do
68
+ @list . append ( %w[ 1 1 1 ] )
69
+ assert_equal %w[ 1 ] , @list . elements
70
+ end
71
+
72
+ test "prepending array with duplicates" do
73
+ @list . prepend ( %w[ 1 1 1 ] )
74
+ assert_equal %w[ 1 ] , @list . elements
75
+ end
66
76
end
You can’t perform that action at this time.
0 commit comments