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
22 23 24 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 22 def first_page? page_number > first_page_number end |
#first_page_number ⇒ Integer
Page number of first page
76 77 78 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 76 def first_page_number 1 end |
#from ⇒ Integer
Find out the offset ‘from`
46 47 48 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 46 def from (page_number - 1) * page_size + 1 end |
#last_page? ⇒ Boolean
Check and see if it’s the last page
34 35 36 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 34 def last_page? page_number < last_page_number end |
#last_page_number ⇒ Integer
Page number of last page
82 83 84 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 82 def last_page_number number_of_pages end |
#next_page? ⇒ Boolean
Check and see if it’s the next page
40 41 42 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 40 def next_page? page_number < last_page_number end |
#next_page_number ⇒ Integer
Page number of next page
94 95 96 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 94 def next_page_number [page_number + 1, last_page_number].min end |
#number_of_pages ⇒ Integer
Total number of pages
100 101 102 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 100 def number_of_pages (total / page_size.to_f).ceil end |
#page_number ⇒ Integer
Find out the current page number
70 71 72 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 70 def page_number raise NotImplemented end |
#page_size ⇒ Integer
Find out the current page size
64 65 66 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 64 def page_size raise NotImplemented end |
#paginatable? ⇒ Boolean
If a collection has pagination feature
16 17 18 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 16 def paginatable? raise NotImplemented end |
#prev_page? ⇒ Boolean
Check and see if it’s the previous page
28 29 30 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 28 def prev_page? page_number > first_page_number end |
#prev_page_number ⇒ Integer
Page number of previous page
88 89 90 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 88 def prev_page_number [page_number - 1, first_page_number].max end |
#to ⇒ Integer
Find out the offset ‘to`
52 53 54 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 52 def to [page_number * page_size, total].min end |
#total ⇒ Integer
Find out the total count of current query
58 59 60 |
# File 'lib/interfaces/wallaby/model_pagination_provider.rb', line 58 def total raise NotImplemented end |