class Resque::Plugins::Approve::ApprovalKeyList
A class representing a queue of Pending job_queues.
The queue is named with the approval_key for all of the job_queues
in the queue and contains a list of the job_queues.
Public Instance Methods
add_job(job)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 32 def add_job(job) add_key(job.approval_key) Resque::Plugins::Approve::PendingJobQueue.new(job.approval_key).add_job(job) end
add_key(key)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 28 def add_key(key) redis.sadd(list_key, key) end
approve_all()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 47 def approve_all queues.each(&:approve_all) end
delete_all()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 38 def delete_all queues.each do |queue| queue.delete remove_key(queue.approval_key) end redis.del(list_key) end
job_queues()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 66 def job_queues @job_queues ||= queue_keys.map { |approval_key| Resque::Plugins::Approve::PendingJobQueue.new(approval_key) } end
num_queues()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 74 def num_queues queue_keys.length end
order_param(sort_option, current_sort, current_order)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 12 def order_param(sort_option, current_sort, current_order) current_order ||= "asc" if sort_option == current_sort current_order == "asc" ? "desc" : "asc" else "asc" end end
queue_keys()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 70 def queue_keys @queue_keys ||= redis.smembers(list_key) end
queues(sort_key = :approval_key, sort_order = "asc", page_num = 1, queue_page_size = 20)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 51 def queues(sort_key = :approval_key, sort_order = "asc", page_num = 1, queue_page_size = 20) queue_page_size = queue_page_size.to_i queue_page_size = 20 if queue_page_size < 1 job_queues = sorted_job_queues(sort_key) page_start = (page_num - 1) * queue_page_size page_start = 0 if page_start > job_queues.length || page_start.negative? (sort_order == "desc" ? job_queues.reverse : job_queues)[page_start..(page_start + queue_page_size - 1)] end
remove_key(key)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 22 def remove_key(key) Resque::Plugins::Approve::PendingJobQueue.new(key).resume redis.srem(list_key, key) end
Private Instance Methods
approval_key_sort_value(job_queue, sort_key)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 90 def approval_key_sort_value(job_queue, sort_key) case sort_key.to_sym when :approval_key, :num_jobs job_queue.public_send(sort_key) when :first_enqueued job_queue.public_send(sort_key).to_s end end
list_key()
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 80 def list_key @list_key ||= "approve.approval_key_list" end
sorted_job_queues(sort_key)
click to toggle source
# File lib/resque/plugins/approve/approval_key_list.rb, line 84 def sorted_job_queues(sort_key) job_queues.sort_by do |job_queue| approval_key_sort_value(job_queue, sort_key) end end