class Requeue::Queue
Public Class Methods
new(redis: Redis.current, prefix: 'queue', unique:true)
click to toggle source
# File lib/requeue.rb, line 5 def initialize(redis: Redis.current, prefix: 'queue', unique:true) @prefix = prefix @unique = unique @redis = redis end
Public Instance Methods
as_json()
click to toggle source
# File lib/requeue.rb, line 67 def as_json {queue: list, owner: owner, length: length}.to_json end
clear()
click to toggle source
# File lib/requeue.rb, line 23 def clear @redis.del(name) end
dequeue()
click to toggle source
# File lib/requeue.rb, line 35 def dequeue @redis.lpop(name) end
enqueue(value)
click to toggle source
# File lib/requeue.rb, line 27 def enqueue(value) if (@unique == false || !queued?(value)) @redis.rpush(name, value) else length end end
first()
click to toggle source
# File lib/requeue.rb, line 55 def first @redis.lrange(name, 0, 1).first end
length()
click to toggle source
# File lib/requeue.rb, line 19 def length @redis.llen(name) end
list()
click to toggle source
# File lib/requeue.rb, line 15 def list @redis.lrange(name, 0, length) end
name()
click to toggle source
# File lib/requeue.rb, line 11 def name "#{@prefix}:queue" end
owned?()
click to toggle source
# File lib/requeue.rb, line 59 def owned? length > 0 end
owner()
click to toggle source
# File lib/requeue.rb, line 51 def owner first end
position(value)
click to toggle source
# File lib/requeue.rb, line 43 def position(value) list.index(value) end
queued?(value)
click to toggle source
# File lib/requeue.rb, line 39 def queued?(value) list.include?(value) end
remove(value)
click to toggle source
# File lib/requeue.rb, line 47 def remove(value) @redis.lrem(name, 0, value) end
steal(value)
click to toggle source
# File lib/requeue.rb, line 63 def steal(value) @redis.lpush(name, value) end