engine/lib/locomotive/kaminari.rb

36 lines
1.0 KiB
Ruby

require 'kaminari'
module Kaminari
class PaginatableArray < Array
def to_liquid(options = {})
{
:collection => to_a,
:current_page => current_page,
:previous_page => first_page? ? nil : current_page - 1,
:next_page => last_page? ? nil : current_page + 1,
:total_entries => total_count,
:total_pages => num_pages,
:per_page => limit_value
}
end
end
module PageScopeMethods
def to_liquid(options = {})
{
:collection => to_a,
:current_page => current_page,
:previous_page => first_page? ? nil : current_page - 1,
:total_entries => total_count,
:per_page => limit_value
}.tap do |hash|
# note: very important to avoid extra and useless mongodb requests
hash[:total_pages] = (hash[:total_entries].to_f / limit_value).ceil
hash[:next_page] = current_page >= hash[:total_pages] ? nil : current_page + 1
end
end
end
end