3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/deli/pagination.rb', line 3
def paginate(options)
options = options.dup
options[:page] = ((options[:offset] || 0) / options[:limit]).ceil if !options[:page] && options[:limit]
options[:per_page] ||= options[:limit]
pagenum = options.fetch(:page) { raise ArgumentError, ":page parameter required" }
per_page = options.delete(:per_page) || self.per_page
total = options.delete(:total_entries)
count_options = options.delete(:count)
options.delete(:page)
rel = limit(per_page.to_i).page(pagenum)
rel = rel.apply_finder_options(options) if options.any?
rel.total_entries = total.to_i unless total.blank?
rel
end
|