Class: Wallaby::ModelPaginationProvider
- Inherits:
-
Object
- Object
- Wallaby::ModelPaginationProvider
- Defined in:
- lib/interfaces/wallaby/model_pagination_provider.rb
Overview
Model pagination provider interface
Direct Known Subclasses
Instance Method Summary collapse
-
#first_page? ⇒ Boolean
Check and see if it’s the first page.
-
#first_page_number ⇒ Integer
Page number of first page.
-
#from ⇒ Integer
Find out the offset ‘from`.
-
#initialize(collection, params, options: {}, model_decorator: nil) ⇒ ModelPaginationProvider
constructor
A new instance of ModelPaginationProvider.
-
#last_page? ⇒ Boolean
Check and see if it’s the last page.
-
#last_page_number ⇒ Integer
Page number of last page.
-
#next_page? ⇒ Boolean
Check and see if it’s the next page.
-
#next_page_number ⇒ Integer
Page number of next page.
-
#number_of_pages ⇒ Integer
Total number of pages.
-
#page_number ⇒ Integer
Find out the current page number.
-
#page_size ⇒ Integer
Find out the current page size.
-
#paginatable? ⇒ Boolean
If a collection has pagination feature.
-
#prev_page? ⇒ Boolean
Check and see if it’s the previous page.
-
#prev_page_number ⇒ Integer
Page number of previous page.
-
#to ⇒ Integer
Find out the offset ‘to`.
-
#total ⇒ Integer
Find out the total count of current query.
Constructor Details
#initialize(collection, params, options: {}, model_decorator: nil) ⇒ ModelPaginationProvider
Returns a new instance of ModelPaginationProvider.
8 9 10 11 12 13 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 8 def initialize(collection, params, options: {}, model_decorator: nil) @collection = collection @params = params @options = @model_decorator = model_decorator end |
Instance Method Details
#first_page? ⇒ Boolean
Check and see if it’s the first page
23 24 25 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 23 def first_page? page_number > first_page_number end |
#first_page_number ⇒ Integer
Page number of first page
77 78 79 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 77 def first_page_number 1 end |
#from ⇒ Integer
Find out the offset ‘from`
47 48 49 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 47 def from (page_number - 1) * page_size + 1 end |
#last_page? ⇒ Boolean
Check and see if it’s the last page
35 36 37 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 35 def last_page? page_number < last_page_number end |
#last_page_number ⇒ Integer
Page number of last page
83 84 85 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 83 def last_page_number number_of_pages end |
#next_page? ⇒ Boolean
Check and see if it’s the next page
41 42 43 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 41 def next_page? page_number < last_page_number end |
#next_page_number ⇒ Integer
Page number of next page
95 96 97 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 95 def next_page_number [page_number + 1, last_page_number].min end |
#number_of_pages ⇒ Integer
Total number of pages
101 102 103 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 101 def number_of_pages (total / page_size.to_f).ceil end |
#page_number ⇒ Integer
Find out the current page number
71 72 73 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 71 def page_number raise NotImplemented end |
#page_size ⇒ Integer
Find out the current page size
65 66 67 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 65 def page_size raise NotImplemented end |
#paginatable? ⇒ Boolean
If a collection has pagination feature
17 18 19 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 17 def paginatable? raise NotImplemented end |
#prev_page? ⇒ Boolean
Check and see if it’s the previous page
29 30 31 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 29 def prev_page? page_number > first_page_number end |
#prev_page_number ⇒ Integer
Page number of previous page
89 90 91 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 89 def prev_page_number [page_number - 1, first_page_number].max end |
#to ⇒ Integer
Find out the offset ‘to`
53 54 55 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 53 def to [page_number * page_size, total].min end |
#total ⇒ Integer
Find out the total count of current query
59 60 61 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 59 def total raise NotImplemented end |