Skip to content

Commit 0ca46ce

Browse files
committed
refactor @queues[queue.to_s] into it's own method
Based off @tenderlove's gist: https://gist.github.com/2322092
1 parent 1704ef4 commit 0ca46ce

File tree

2 files changed

+12
-20
lines changed

2 files changed

+12
-20
lines changed

lib/resque.rb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ def to_s
149149
#
150150
# Returns nothing
151151
def push(queue, item)
152-
@queues[queue.to_s] << item
152+
queue(queue) << item
153153
end
154154

155155
# Pops a job off a queue. Queue name should be a string.
156156
#
157157
# Returns a Ruby object.
158158
def pop(queue)
159159
begin
160-
@queues[queue.to_s].pop(true)
160+
queue(queue).pop(true)
161161
rescue ThreadError
162162
nil
163163
end
@@ -166,7 +166,7 @@ def pop(queue)
166166
# Returns an integer representing the size of a queue.
167167
# Queue name should be a string.
168168
def size(queue)
169-
@queues[queue.to_s].size
169+
queue(queue).size
170170
end
171171

172172
# Returns an array of items currently queued. Queue name should be
@@ -178,7 +178,7 @@ def size(queue)
178178
# To get the 3rd page of a 30 item, paginatied list one would use:
179179
# Resque.peek('my_list', 59, 30)
180180
def peek(queue, start = 0, count = 1)
181-
@queues[queue.to_s].slice start, count
181+
queue(queue).slice start, count
182182
end
183183

184184
# Does the dirty work of fetching a range of items from a Redis list
@@ -200,10 +200,15 @@ def queues
200200

201201
# Given a queue name, completely deletes the queue.
202202
def remove_queue(queue)
203-
@queues[queue.to_s].destroy
203+
queue(queue).destroy
204204
@queues.delete(queue.to_s)
205205
end
206206

207+
# Return the Resque::Queue object for a given name
208+
def queue(name)
209+
@queues[name.to_s]
210+
end
211+
207212

208213
#
209214
# job shortcuts

test/resque_test.rb

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -278,20 +278,7 @@
278278
end
279279
end
280280

281-
it "normalizes @queues' keys" do
282-
[:foo, "foo"].each do |queue|
283-
Resque.push(queue, GoodJob)
284-
Resque.size(queue)
285-
Resque.peek(queue)
286-
Resque.pop(queue)
287-
end
288-
289-
assert_equal 2, Resque.instance_variable_get("@queues").size
290-
assert_equal 2, Resque.queues.size
291-
292-
Resque.remove_queue(:foo)
293-
294-
assert_equal 1, Resque.instance_variable_get("@queues").size
295-
assert_equal 1, Resque.queues.size
281+
it 'treats symbols and strings the same' do
282+
assert_equal Resque.queue(:people), Resque.queue('people')
296283
end
297284
end

0 commit comments

Comments
 (0)