class ResqueCleaner::Server::Paginate

Pagination helper for list page.

Attributes

jobs[RW]
page[RW]
page_size[RW]
url[RW]

Public Class Methods

new(jobs, url, page=1, page_size=20) click to toggle source
# File lib/resque_cleaner/server.rb, line 18
def initialize(jobs, url, page=1, page_size=20)
  @jobs = jobs
  @url = url
  @page = (!page || page < 1) ? 1 : page
  @page_size = 20
end

Public Instance Methods

first_index() click to toggle source
# File lib/resque_cleaner/server.rb, line 25
def first_index
  @page_size * (@page-1)
end
first_page?() click to toggle source
# File lib/resque_cleaner/server.rb, line 38
def first_page?
  @page <= 1
end
last_index() click to toggle source
# File lib/resque_cleaner/server.rb, line 29
def last_index
  last = first_index + @page_size - 1
  last > @jobs.size-1 ? @jobs.size-1 : last
end
last_page?() click to toggle source
# File lib/resque_cleaner/server.rb, line 42
def last_page?
  @page >= max_page
end
max_page() click to toggle source
# File lib/resque_cleaner/server.rb, line 60
def max_page
  ((total_size-1) / @page_size) + 1
end
page_url(page) click to toggle source
# File lib/resque_cleaner/server.rb, line 46
def page_url(page)
  u = @url
  u += @url.include?("?") ? "&" : "?"
  if page.is_a?(Symbol)
    page = @page - 1 if page==:prev
    page = @page + 1 if page==:next
  end
  u += "p=#{page}"
end
paginated_jobs() click to toggle source
# File lib/resque_cleaner/server.rb, line 34
def paginated_jobs
  @jobs[first_index,@page_size]
end
total_size() click to toggle source
# File lib/resque_cleaner/server.rb, line 56
def total_size
  @jobs.size
end