Class: ResqueManager::Paginate

Inherits:
Object
  • Object
show all
Defined in:
app/models/resque_manager/paginate.rb

Overview

Pagination helper for list page.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(jobs, url, page = 1, page_size = 20) ⇒ Paginate

Returns a new instance of Paginate.



8
9
10
11
12
13
# File 'app/models/resque_manager/paginate.rb', line 8

def initialize(jobs, url, page=1, page_size=20)
  @jobs = jobs
  @url = url
  @page = (!page || page < 1) ? 1 : page
  @page_size = 20
end

Instance Attribute Details

#jobsObject

Returns the value of attribute jobs.



6
7
8
# File 'app/models/resque_manager/paginate.rb', line 6

def jobs
  @jobs
end

#pageObject

Returns the value of attribute page.



6
7
8
# File 'app/models/resque_manager/paginate.rb', line 6

def page
  @page
end

#page_sizeObject

Returns the value of attribute page_size.



6
7
8
# File 'app/models/resque_manager/paginate.rb', line 6

def page_size
  @page_size
end

#urlObject

Returns the value of attribute url.



6
7
8
# File 'app/models/resque_manager/paginate.rb', line 6

def url
  @url
end

Instance Method Details

#first_indexObject



15
16
17
# File 'app/models/resque_manager/paginate.rb', line 15

def first_index
  @page_size * (@page-1)
end

#first_page?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/resque_manager/paginate.rb', line 28

def first_page?
  @page <= 1
end

#last_indexObject



19
20
21
22
# File 'app/models/resque_manager/paginate.rb', line 19

def last_index
  last = first_index + @page_size - 1
  last > @jobs.size-1 ? @jobs.size-1 : last
end

#last_page?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'app/models/resque_manager/paginate.rb', line 32

def last_page?
  @page >= max_page
end

#max_pageObject



50
51
52
# File 'app/models/resque_manager/paginate.rb', line 50

def max_page
  ((total_size-1) / @page_size) + 1
end

#page_url(page) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'app/models/resque_manager/paginate.rb', line 36

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_jobsObject



24
25
26
# File 'app/models/resque_manager/paginate.rb', line 24

def paginated_jobs
  @jobs[first_index, @page_size]
end

#total_sizeObject



46
47
48
# File 'app/models/resque_manager/paginate.rb', line 46

def total_size
  @jobs.size
end