Skip to content

Commit 9b730aa

Browse files
committed
Resque#peek always returns an array.
Consistency of interface is important. Fixes resque#744.
1 parent 12cfb65 commit 9b730aa

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

lib/resque.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,15 @@ def size(queue)
213213
# To get the 3rd page of a 30 item, paginatied list one would use:
214214
# Resque.peek('my_list', 59, 30)
215215
def peek(queue, start = 0, count = 1)
216-
queue(queue).slice start, count
216+
result = queue(queue).slice(start, count)
217+
218+
if result.nil?
219+
[]
220+
elsif result.respond_to?(:to_ary)
221+
result.to_ary || [result]
222+
else
223+
[result]
224+
end
217225
end
218226

219227
# Does the dirty work of fetching a range of items from a Redis list

test/resque_test.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,18 +181,18 @@
181181
end
182182

183183
it "can peek at a queue" do
184-
assert_equal({ 'name' => 'chris' }, Resque.peek(:people))
184+
assert_equal([{ 'name' => 'chris' }], Resque.peek(:people))
185185
assert_equal 3, Resque.size(:people)
186186
end
187187

188188
it "can peek multiple items on a queue" do
189-
assert_equal({ 'name' => 'bob' }, Resque.peek(:people, 1, 1))
189+
assert_equal([{ 'name' => 'bob' }], Resque.peek(:people, 1, 1))
190190

191191
assert_equal([{ 'name' => 'bob' }, { 'name' => 'mark' }], Resque.peek(:people, 1, 2))
192192
assert_equal([{ 'name' => 'chris' }, { 'name' => 'bob' }], Resque.peek(:people, 0, 2))
193193
assert_equal([{ 'name' => 'chris' }, { 'name' => 'bob' }, { 'name' => 'mark' }], Resque.peek(:people, 0, 3))
194-
assert_equal({ 'name' => 'mark' }, Resque.peek(:people, 2, 1))
195-
assert_equal nil, Resque.peek(:people, 3)
194+
assert_equal([{ 'name' => 'mark' }], Resque.peek(:people, 2, 1))
195+
assert_equal [], Resque.peek(:people, 3)
196196
assert_equal [], Resque.peek(:people, 3, 2)
197197
end
198198

0 commit comments

Comments
 (0)