Skip to content

Commit

Permalink
Require array argument for variadic SADD/SREM
Browse files Browse the repository at this point in the history
  • Loading branch information
pietern committed Feb 1, 2012
1 parent a4f5888 commit 2f11d70
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
26 changes: 14 additions & 12 deletions lib/redis.rb
Original file line number Diff line number Diff line change
Expand Up @@ -452,28 +452,30 @@ def sismember(key, member)
end

# Add one or more members to a set.
def sadd(key, *members)
def sadd(key, member)
synchronize do
@client.call [:sadd, key, *members] do |reply|
# Compatibility: return boolean when 1 member argument was given.
if members.size == 1
_boolify.call(reply)
else
@client.call [:sadd, key, member] do |reply|
if member.is_a? Array
# Variadic: return integer
reply
else
# Single argument: return boolean
_boolify.call(reply)
end
end
end
end

# Remove one or more members from a set.
def srem(key, *members)
def srem(key, member)
synchronize do
@client.call [:srem, key, *members] do |reply|
# Compatibility: return boolean when 1 member argument was given.
if members.size == 1
_boolify.call(reply)
else
@client.call [:srem, key, member] do |reply|
if member.is_a? Array
# Variadic: return integer
reply
else
# Single argument: return boolean
_boolify.call(reply)
end
end
end
Expand Down
10 changes: 5 additions & 5 deletions test/lint/sets.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
test "Variadic SADD" do |r|
next if version(r) < 203090 # 2.4-rc6

assert 2 == r.sadd("foo", "s1", "s2")
assert 1 == r.sadd("foo", "s1", "s2", "s3")
assert 2 == r.sadd("foo", ["s1", "s2"])
assert 1 == r.sadd("foo", ["s1", "s2", "s3"])

assert ["s1", "s2", "s3"] == r.smembers("foo").sort
end
Expand All @@ -32,9 +32,9 @@
r.sadd("foo", "s2")
r.sadd("foo", "s3")

assert 1 == r.srem("foo", "s1", "aaa")
assert 0 == r.srem("foo", "bbb", "ccc" "ddd")
assert 1 == r.srem("foo", "eee", "s3")
assert 1 == r.srem("foo", ["s1", "aaa"])
assert 0 == r.srem("foo", ["bbb", "ccc" "ddd"])
assert 1 == r.srem("foo", ["eee", "s3"])

assert ["s2"] == r.smembers("foo")
end
Expand Down

0 comments on commit 2f11d70

Please sign in to comment.