Module: Filemaker::Model::Pagination
- Included in:
- Criteria
- Defined in:
- lib/filemaker/model/pagination.rb
Instance Method Summary collapse
-
#__page ⇒ Object
A simple getter to retrieve the current page value.
-
#__per ⇒ Object
A simple getter to retrieve the limit value.
-
#page(value) ⇒ Object
Calling ‘page` will trigger pagination.
- #per(value) ⇒ Object
- #positive_page(page) ⇒ Object
- #update_skip ⇒ Object
Instance Method Details
#__page ⇒ Object
A simple getter to retrieve the current page value. If no one set it up through the ‘page(4)` way, then at least it defaults to 1.
19 20 21 |
# File 'lib/filemaker/model/pagination.rb', line 19 def __page @_page || 1 end |
#__per ⇒ Object
A simple getter to retrieve the limit value. It will default to Model.per_page
Will have stacklevel too deep if we have ‘per(nil)`. Somehow, the `per_page` must be set either at the `Model.per_page`, `Kaminari.config.default_per_page`, or right here where I just throw a 25 value at it.
30 31 32 33 |
# File 'lib/filemaker/model/pagination.rb', line 30 def __per per(klass.per_page || 25) unless limit? [:max] end |
#page(value) ⇒ Object
Calling ‘page` will trigger pagination.
5 6 7 8 9 10 |
# File 'lib/filemaker/model/pagination.rb', line 5 def page(value) value = 1 if value.nil? chains << :page @_page = positive_page(value.to_i) update_skip end |
#per(value) ⇒ Object
12 13 14 15 |
# File 'lib/filemaker/model/pagination.rb', line 12 def per(value) limit(value) update_skip end |
#positive_page(page) ⇒ Object
41 42 43 44 |
# File 'lib/filemaker/model/pagination.rb', line 41 def positive_page(page) return 1 if page.nil? || !page.is_a?(Integer) page.positive? ? page : 1 end |
#update_skip ⇒ Object
35 36 37 38 39 |
# File 'lib/filemaker/model/pagination.rb', line 35 def update_skip skip = (__page - 1) * __per skip(skip) unless skip.zero? self end |