module Pagy::ArelExtra
def pagy_arel(collection, **vars)
def pagy_arel(collection, **vars) vars[:count] ||= pagy_arel_count(collection) pagy(collection, **vars) end
def pagy_arel_count(collection)
def pagy_arel_count(collection) if collection.group_values.empty? # COUNT(*) collection.count(:all) else # COUNT(*) OVER () sql = Arel.star.count.over(Arel::Nodes::Grouping.new([])) collection.unscope(:order).pick(sql).to_i end end