Module: Filemaker::Model::Pagination

Included in:
Criteria
Defined in:
lib/filemaker/model/pagination.rb

Instance Method Summary collapse

Instance Method Details

#__pageObject

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.



18
19
20
# File 'lib/filemaker/model/pagination.rb', line 18

def __page
  @_page || 1
end

#__perObject

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.



29
30
31
32
# File 'lib/filemaker/model/pagination.rb', line 29

def __per
  per(klass.per_page || 25) unless limit?
  options[:max]
end

#page(value) ⇒ Object

Calling page will trigger pagination.



5
6
7
8
9
# File 'lib/filemaker/model/pagination.rb', line 5

def page(value)
  chains << :page
  @_page = value.to_i
  update_skip
end

#per(value) ⇒ Object



11
12
13
14
# File 'lib/filemaker/model/pagination.rb', line 11

def per(value)
  limit(value)
  update_skip
end

#update_skipObject



34
35
36
37
38
# File 'lib/filemaker/model/pagination.rb', line 34

def update_skip
  skip = (__page - 1) * __per
  skip(skip) unless skip.zero?
  self
end