Skip to content

Commit 43d9780

Browse files
sdsstevenharman
andauthored
Add srem? for redis-rb compatibility (#296)
Rebases #294 so that CI passes. Closes #294. Co-authored-by: Steven Harman <[email protected]>
1 parent 12272c2 commit 43d9780

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

lib/mock_redis/set_methods.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ def srem(key, members)
137137
end
138138
end
139139

140+
def srem?(key, members)
141+
res = srem(key, members)
142+
res.is_a?(Numeric) ? res > 0 : res
143+
end
144+
140145
def sscan(key, cursor, opts = {})
141146
common_scan(smembers(key), cursor, opts)
142147
end

spec/commands/srem_spec.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,20 @@
4141
expect(@redises.srem(@key, [1, 2])).to eq(2)
4242
end
4343

44+
context 'srem?' do
45+
it 'returns true if member is in the set' do
46+
expect(@redises.srem?(@key, 'bert')).to eq(true)
47+
end
48+
49+
it 'returns false if member is not in the set' do
50+
expect(@redises.srem?(@key, 'cookiemonster')).to eq(false)
51+
end
52+
53+
it 'removes member from the set' do
54+
@redises.srem?(@key, 'ernie')
55+
expect(@redises.smembers(@key)).to eq(['bert'])
56+
end
57+
end
58+
4459
it_should_behave_like 'a set-only command'
4560
end

0 commit comments

Comments
 (0)