Skip to content

Commit bef7833

Browse files
committed
Merge branch 'distributed-sscan' of https://github.com/consolo/redis-rb
2 parents 2ebeac6 + 71d64bc commit bef7833

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

lib/redis/distributed.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,16 @@ def smembers(key)
512512
node_for(key).smembers(key)
513513
end
514514

515+
# Scan a set
516+
def sscan(key, cursor, options={})
517+
node_for(key).sscan(key, cursor, options)
518+
end
519+
520+
# Scan a set and return an enumerator
521+
def sscan_each(key, options={}, &block)
522+
node_for(key).sscan_each(key, options, &block)
523+
end
524+
515525
# Subtract multiple sets.
516526
def sdiff(*keys)
517527
ensure_same_node(:sdiff, keys) do |node|

test/distributed_commands_on_sets_test.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,29 @@ def test_sdiffstore
7878
r.sdiffstore("baz", "foo", "bar")
7979
end
8080
end
81+
82+
def test_sscan
83+
assert_nothing_raised do
84+
r.sadd "foo", "s1"
85+
r.sadd "foo", "s2"
86+
r.sadd "bar", "s2"
87+
r.sadd "bar", "s3"
88+
89+
cursor, vals = r.sscan "foo", 0
90+
assert_equal '0', cursor
91+
assert_equal %w(s1 s2), vals.sort
92+
end
93+
end
94+
95+
def test_sscan_each
96+
assert_nothing_raised do
97+
r.sadd "foo", "s1"
98+
r.sadd "foo", "s2"
99+
r.sadd "bar", "s2"
100+
r.sadd "bar", "s3"
101+
102+
vals = r.sscan_each("foo").to_a
103+
assert_equal %w(s1 s2), vals.sort
104+
end
105+
end
81106
end

0 commit comments

Comments
 (0)