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.
20 21 22 |
# File 'lib/filemaker/model/pagination.rb', line 20 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.
31 32 33 34 |
# File 'lib/filemaker/model/pagination.rb', line 31 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 11 |
# 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 all end |
#per(value) ⇒ Object
13 14 15 16 |
# File 'lib/filemaker/model/pagination.rb', line 13 def per(value) limit(value) update_skip end |
#positive_page(page) ⇒ Object
42 43 44 45 |
# File 'lib/filemaker/model/pagination.rb', line 42 def positive_page(page) return 1 if page.nil? || !page.is_a?(Integer) page.positive? ? page : 1 end |
#update_skip ⇒ Object
36 37 38 39 40 |
# File 'lib/filemaker/model/pagination.rb', line 36 def update_skip skip = (__page - 1) * __per skip(skip) unless skip.zero? self end |