module Filemaker::Model::Pagination

Public Instance Methods

__page() click to toggle source

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.

# File lib/filemaker/model/pagination.rb, line 20
def __page
  @_page || 1
end
__per() click to toggle source

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.

# File lib/filemaker/model/pagination.rb, line 31
def __per
  per(klass.per_page || 25) unless limit?
  options[:max]
end
page(value) click to toggle source

Calling `page` will trigger pagination.

# 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) click to toggle source
# File lib/filemaker/model/pagination.rb, line 13
def per(value)
  limit(value)
  update_skip
end
positive_page(page) click to toggle source
# 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() click to toggle source
# File lib/filemaker/model/pagination.rb, line 36
def update_skip
  skip = (__page - 1) * __per
  skip(skip) unless skip.zero?
  self
end