class Resque::Plugins::Stages::StagedGroupList

A utility class that keeps track of all Groups and lists them.

Public Instance Methods

add_group(group) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 43
def add_group(group)
  redis.sadd list_key, group.group_id
end
delete_all() click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 51
def delete_all
  groups.each(&:delete)
end
groups() click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 10
def groups
  redis.smembers(list_key).map { |group_id| Resque::Plugins::Stages::StagedGroup.new(group_id) }
end
num_groups() click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 39
def num_groups
  groups.length
end
order_param(sort_option, current_sort, current_order) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 14
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
paginated_groups(sort_key = :description, sort_order = "asc", page_num = 1, queue_page_size = 20) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 24
def paginated_groups(sort_key = :description,
                     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

  group_list = sorted_groups(sort_key)

  page_start = (page_num - 1) * queue_page_size
  page_start = 0 if page_start > group_list.length || page_start.negative?

  (sort_order == "desc" ? group_list.reverse : group_list)[page_start..(page_start + queue_page_size - 1)]
end
remove_group(group) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 47
def remove_group(group)
  redis.srem list_key, group.group_id
end

Private Instance Methods

group_sort_value(group, sort_key) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 63
def group_sort_value(group, sort_key)
  case sort_key.to_sym
    when :description,
        :num_stages
      group.public_send(sort_key)
    when :created_at
      group.public_send(sort_key).to_s
  end
end
list_key() click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 73
def list_key
  "StagedGroupList"
end
sorted_groups(sort_key) click to toggle source
# File lib/resque/plugins/stages/staged_group_list.rb, line 57
def sorted_groups(sort_key)
  groups.sort_by do |group|
    group_sort_value(group, sort_key)
  end
end