Class: ThinkingSphinx::Masks::PaginationMask
- Inherits:
-
Object
- Object
- ThinkingSphinx::Masks::PaginationMask
- Defined in:
- lib/thinking_sphinx/masks/pagination_mask.rb
Instance Method Summary collapse
- #can_handle?(method) ⇒ Boolean
- #first_page? ⇒ Boolean
-
#initialize(search) ⇒ PaginationMask
constructor
A new instance of PaginationMask.
- #last_page? ⇒ Boolean
- #next_page ⇒ Object
- #next_page? ⇒ Boolean
- #page(number) ⇒ Object
- #per(limit) ⇒ Object
- #previous_page ⇒ Object
- #total_entries ⇒ Object (also: #total_count, #count)
- #total_pages ⇒ Object (also: #page_count, #num_pages)
Constructor Details
#initialize(search) ⇒ PaginationMask
Returns a new instance of PaginationMask.
2 3 4 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 2 def initialize(search) @search = search end |
Instance Method Details
#can_handle?(method) ⇒ Boolean
6 7 8 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 6 def can_handle?(method) public_methods(false).include?(method) end |
#first_page? ⇒ Boolean
10 11 12 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 10 def first_page? search.current_page == 1 end |
#last_page? ⇒ Boolean
14 15 16 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 14 def last_page? next_page.nil? end |
#next_page ⇒ Object
18 19 20 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 18 def next_page search.current_page >= total_pages ? nil : search.current_page + 1 end |
#next_page? ⇒ Boolean
22 23 24 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 22 def next_page? !next_page.nil? end |
#page(number) ⇒ Object
26 27 28 29 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 26 def page(number) search.[:page] = number search end |
#per(limit) ⇒ Object
31 32 33 34 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 31 def per(limit) search.[:limit] = limit search end |
#previous_page ⇒ Object
36 37 38 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 36 def previous_page search.current_page == 1 ? nil : search.current_page - 1 end |
#total_entries ⇒ Object Also known as: total_count, count
40 41 42 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 40 def total_entries search.['total_found'].to_i end |
#total_pages ⇒ Object Also known as: page_count, num_pages
47 48 49 50 51 |
# File 'lib/thinking_sphinx/masks/pagination_mask.rb', line 47 def total_pages return 0 if search.['total'].nil? @total_pages ||= (search.['total'].to_i / search.per_page.to_f).ceil end |